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 a decimal_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.

A continuación se muestra un ejemplo de cómo utilizar este campo:

from django.db import modelsclass Producto(models.Model):    nombre = models.CharField(max_length=20)class Pedido(models.Model):    numero_pedido = models.CharField(max_length=10)    productos = models.ManyToManyField(Producto)

En el código anterior, el modelo ‘pedido’ tiene un campo ‘productos’ que establece una relación de muchos a muchos con el modelo ‘producto’. Por lo tanto, un pedido puede contener múltiples productos y un producto puede estar en múltiples pedidos.

El campo del modelo OneToOneField

El tipo de campo OneToOne crea una relación uno a uno entre dos modelos. Esto significa que cada registro en un modelo se corresponderá exactamente con un registro de otro modelo. Este campo tiene un parámetro requerido, la clase a la cual se relaciona el modelo.

A continuación se muestra un ejemplo de cómo utilizar el campo OneToOneField:

from django.db import modelsclass Cliente(models.Model):    correo_electronico = models.EmailField()class PerfilCliente(models.Model):    cliente = models.OneToOneField(Cliente, on_delete=models.CASCADE)    numero_telefono = models.CharField(max_length=15)

En el ejemplo anterior, el PerfilCliente se vincula al cliente a través del OneToOneField. Esto asegura que cada Cliente pueda tener exactamente un PerfilCliente y que cada PerfilCliente esté asociado únicamente a un Cliente. El parámetro adicional on_delete=models.CASCADE simplemente le indica al programa que elimine el PerfilCliente cuando se elimine el Cliente.

Conclusión

Los campos de modelos de Django te permiten construir estructuras de datos eficientes para tus aplicaciones web. Los tipos de campo te ayudan a eliminar errores humanos al imponer el tipo de datos en un campo particular.

En este artículo, has visto algunos de los tipos de campo comunes en Django y cómo utilizarlos para almacenar tus datos. A medida que continúes construyendo tus proyectos de Django, el conocimiento para comprender e implementar estos campos de modelo será invaluable para crear aplicaciones confiables para tus usuarios.


Leave a Reply

Your email address will not be published. Required fields are marked *