Campos de Modelo en Django Casos de Uso Comunes y Cómo Funcionan
Los campos del modelo de Django definen la estructura de una base de datos dentro de una aplicación web de Django. Utilizar este componente esencial mantendrá tu trabajo organizado y te ayudará a cometer menos errores en tu código. Este artículo discutirá algunos campos comunes del modelo de Django y cómo usarlos en tu código.
Los campos del modelo de Django definen la estructura de una base de datos dentro de una aplicación web de Django. El uso de este componente esencial mantendrá tu trabajo organizado y te ayudará a cometer menos errores en tu código.
Este artículo discutirá algunos campos comunes del modelo de Django y cómo usarlos en tu código.
Para sacar el máximo provecho de este artículo, debes tener al menos un conocimiento básico de Django y entender cómo funciona la programación orientada a objetos.
¿Qué es un campo de modelo?
Un campo de modelo es un tipo de datos que almacena un tipo específico de información. Cada campo de modelo representa datos específicos, como números, fechas, textos o incluso relaciones con otros modelos.
Los campos contienen validaciones incorporadas para tipos específicos de datos. Por lo tanto, un IntegerField no aceptará letras del alfabeto, por ejemplo. Cada campo es específico para su propósito.
Campos comunes del modelo de Django
Necesitas importar el módulo models de la base de datos de Django para usar los campos de Django. Esto asegurará que el tipo de datos que almacenas en tu columna de la base de datos esté bien definido.
Esta sección discutirá los tipos de campos de modelo comunes de Django y cómo usarlos.
El campo de modelo CharField
Este campo almacena caracteres o cadenas de texto de longitud corta a media, lo que lo hace adecuado para almacenar un atributo como un nombre. CharField
tiene un parámetro max_length
que debes especificar cada vez que uses el campo. Pero cuando no especificas la longitud del campo, el valor predeterminado es de 255 caracteres.
A continuación se muestra un ejemplo de cómo usar CharField
en tu código:
from django.db import modelsclass Producto(models.Model): nombre = models.CharField(max_length=20)
En el fragmento de código anterior, max_length
establece la longitud máxima del atributo ‘nombre’ en 20 caracteres.
El campo de modelo DateField
Este campo almacena fechas en tu modelo y tiene dos parámetros opcionales (auto_now
y auto_now_add
). El parámetro auto_now
establece la fecha cada vez que cambias o actualizas los datos, mientras que auto_now_add
establece la fecha del campo solo cuando creas los datos.
A continuación se muestra un ejemplo de cómo puedes usar el campo de fecha:
from django.db import modelsclass Producto(models.Model): fecha_creacion = models.DateField(auto_now_add=True) fecha_actualizacion = models.DateField(auto_now=True)
En el fragmento de código anterior, el módulo Producto tiene dos DateField
. Uno establece la fecha cuando creas los datos y el otro establece la fecha cuando actualizas los datos.
El campo de modelo DateTimeField
Este campo almacena la información de fecha y hora en un modelo. Al igual que DateField
, DateTimeField
también tiene dos parámetros (auto_now
y auto_now_add
). Tienen la misma función, excepto que este campo también establece la hora.
El campo de modelo DecimalField
Este campo almacena números decimales en una base de datos. Puedes usarlo para almacenar valores numéricos como precio, peso y altura.
Tiene dos parámetros que debes especificar al usarlo. Incluyen:
max_digits
: Este es el número total de dígitos permitidos en el número. Incluye todos los dígitos a la izquierda y a la derecha del punto decimal. Este número debe ser mayor o igual adecimal_places
.decimal_places
: Este es el número de dígitos a la derecha del punto decimal.
A continuación se muestra un ejemplo de cómo almacenar datos en el campo DecimalField
:
from django.db import modelsclass Producto(models.Model): precio = models.DecimalField(max_digits=6, decimal_places=2)
En el fragmento de código anterior, el número de dígitos a ambos lados del punto decimal es 6. Al mismo tiempo, el número de lugares decimales es igual a 2. Por lo tanto, tu programa solo puede almacenar precios como $2100.00.
El campo de modelo BooleanField
Este campo almacena valores booleanos. Puedes realizar operaciones binarias simples con este campo.
Por ejemplo:
from django.db import modelsclass Producto(models.Model): agregar_al_carrito = models.BooleanField(default=False)
En el modelo de producto anterior, el BooleanField
está establecido en un valor predeterminado de Falso, lo cual significa que por defecto los productos están fuera de tu carrito. También significa que puedes hacer clic para agregar o quitar un producto de tu carrito en cualquier momento.
El Campo de Modelo EmailField
El EmailField
es una forma especializada de CharField
que almacena direcciones de correo electrónico. Cuando usas este campo, se asegura de que el valor que proporcionas sea una dirección de correo electrónico válida. De lo contrario, devuelve un error.
Aquí te mostramos cómo usar este campo en tu proyecto:
from django.db import modelsclass Cliente(models.Model): correo = models.EmailField()
El programa anterior garantiza que tu cliente ingrese una dirección de correo electrónico válida en la base de datos.
El Campo de Modelo TextField
Un TextField
almacena grandes cantidades de datos de texto. Este campo es útil cuando se almacenan datos de texto que son demasiado largos para un CharField
. Puede manejar textos de gran extensión, como párrafos e incluso documentos enteros.
Aquí tienes un ejemplo de cómo puedes usar este campo:
from django.db import modelsclass Producto(models.Model): comentarios = models.TextField()
En el ejemplo anterior, el modelo Producto tiene un TextField
llamado ‘Comentarios’. Este campo almacenará los comentarios de los clientes sobre los productos.
El Campo de Modelo IntegerField
Este campo almacena valores enteros en forma de números enteros. Estos valores van desde -2147483648 a 0 para enteros negativos y de 0 a 2147483647 para enteros positivos. Por lo tanto, puede almacenar cualquier valor entero, ya sea positivo o negativo.
Según las necesidades de tu proyecto, puedes restringir este campo para almacenar solo un valor positivo o negativo utilizando PositiveIntegerField
o NegativeIntegerField
, respectivamente.
A continuación, se muestra un ejemplo de cómo almacenar datos en el IntegerField:
from django.db import modelsclass Producto(models.Model): cantidad_disponible = models.PositiveIntegerField()
En este ejemplo, el modelo tiene un campo que almacena la cantidad de productos disponibles. PositiveIntegerField
garantiza que la cantidad disponible sea un entero no negativo y solo se pueden ingresar cantidades válidas en el campo.
El Campo de Modelo TimeField
El TimeField es un campo que almacena información de tiempo en tu modelo. Tiene dos parámetros, al igual que el DateField.
Aquí tienes un ejemplo de cómo usar este campo:
from django.db import modelsclass Pedido(models.Model): hora_realizado = models.TimeField(auto_now_add=True)
En el ejemplo anterior, el campo hora_realizado
muestra automáticamente la hora actual cada vez que se hace un nuevo pedido.
El Campo de Modelo ForeignKeyField
El tipo de campo ForeignKey
crea una relación de muchos a uno entre dos modelos. Este campo es útil cuando un modelo (el modelo hijo) necesita hacer referencia a otro (el modelo padre). Tiene dos parámetros requeridos, la clase a la que se relaciona el modelo y la opción on_delete
.
A continuación, se muestra un ejemplo de cómo usar ForeignKey
:
from django.db import modelsclass Cliente(models.Model): correo = models.EmailField()class Pedido(models.Model): numero_pedido = models.CharField(max_length=10) cliente = models.ForeignKey(Cliente, on_delete=models.CASCADE)
El ForeignKey
enlaza cada pedido con un cliente específico en el fragmento de código anterior. También permite que un cliente esté asociado con muchos pedidos. La opción on_delete
especifica que si eliminas un cliente referenciado, todos los pedidos relacionados con ese cliente también deben eliminarse de la base de datos.
El Campo de Modelo ManyToManyField
Este tipo de campo representa una relación de muchos a muchos entre dos modelos. Implica que puedes asociar un registro en un modelo con muchos registros en otro y viceversa. Este campo tiene un parámetro requerido, la clase a la que se relaciona el modelo.
Leave a Reply