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.
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()
.
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.
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