Crear objetos en Django

Salman Mehmood 15 febrero 2024
Crear objetos en Django

Este artículo explica qué es un modelo y cómo crear objetos utilizando el método create(). Veremos cómo funciona el método save() en Django.

Crear objetos usando el método create() en Django

Un modelo en Django es una clase que representa una sola tabla en una base de datos. Podríamos tener cada tipo de dato en nuestra aplicación representado por su modelo.

Luego, cada modelo se asigna a una sola tabla en una base de datos.

Por ejemplo, si tenemos cuatro modelos, artículos, usuarios, autores y libros, tendríamos cuatro tablas en una base de datos. Un solo modelo mapea cada tabla.

Veamos cómo crear objetos de un modelo en la base de datos.

Vamos a usar el shell de Python para crear nuevos objetos. Necesitamos usar el administrador para asegurarnos de que estamos en la raíz de nuestro proyecto Django.

ls

Producción :

db.sqlite3	manage.py	products	trydjango

Ahora, vamos a ejecutar otro comando. Entonces, cuando ejecutamos este comando, todas las cosas del proyecto Django funcionarán dentro de un intérprete de Python.

Veremos un intérprete de Python normal cuando presionemos Enter, pero no es así porque podemos ejecutar el siguiente comando.

python manage.py shell

Hemos importado el modelo Producto del archivo modelos.py. Podemos usar nuestro modelo Producto en el shell actual si presionamos Enter.

from products.models import Product

Hemos incorporado el comando Django para recuperar todos los objetos del modelo definido.

Product.objects.all()

Ahora, podemos ver que solo hay un elemento, y eso se debe a que solo guardamos uno.

<QuerySet[<Product: Product object (1)>]>

Si queremos ver más objetos, solo necesitamos crear más objetos usando el siguiente comando.

Product.objects.create()

Supongamos que nuestro modelo Producto tiene cuatro campos. Estos cuatro campos deben pasar en el método create() para crear un nuevo objeto.

Django Create Object - Ejemplo 1

Vamos a crear un nuevo objeto escribiendo el siguiente comando.

Product.objects.create(
    title="New product",
    description="Another one",
    price=1222,
    summary="The best product",
)

Después de escribir este comando, cuando presionamos Enter, se creará un nuevo objeto.

<Product: Product object (2)>

Ahora, si tratamos de recuperar todos los objetos, veremos otro elemento recién creado.

Product.objects.all()

Ahora, podemos ver el segundo elemento de la lista de consultas.

<QuerySet[<Product: Product object (1)>,<Product: Product object (2)>]>

Cuando vayamos al panel de administración, veremos nuevos objetos allí.

Ahora, veremos cómo usar el método save(). Supongamos que tenemos el siguiente código y necesitamos guardar todos los campos del modelo definido.

Necesitamos pasar todos los campos en nuestra clase modelo y crear un objeto para guardar esto usando el método save().

Django Create Object - Ejemplo 2

Definimos el product_id en el código anterior, por lo que ahora podemos acceder al producto usando su ID. En el product_id, establecemos la primary_key igual a True.

El método save() funciona para dos condiciones, es decir, si el product_id dado ya existe en la base de datos, el objeto se actualizará con diferentes valores de campo.

Si el método save() no encuentra el atributo primary_key establecido en True en product_id, o si el ID dado no existe en la base de datos, producirá un error. Utilizando el Producto.objetos.crear(), solo podremos insertar nuevos objetos.

Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn

Artículo relacionado - Django Model