Lista de campos y tipos de datos del modelo Django

La parte más importante de un modelo y la única parte requerida de un modelo es la lista de campos de base de datos que define. Los campos se especifican mediante atributos de clase. Tenga cuidado de no elegir nombres de campo que entren en conflicto con la API de modelos, como limpiar, guardar o eliminar. 

Ejemplo: 

from django.db import models

class Musician(models.Model):
    first_name = models.CharField(max_length=200)
    last_name = models.CharField(max_length=200)
    instrument = models.CharField(max_length=200)

class Album(models.Model):
    artist = models.ForeignKey(Musician, on_delete=models.CASCADE)
    name = models.CharField(max_length=100)
    release_date = models.DateField()
    num_stars = models.IntegerField()

Establecer un campo para almacenar cualquier tipo de datos es como decidir un tipo de datos en C/C++ para almacenar un número entero, carácter, etc. en particular. Los campos en Django son los tipos de datos para almacenar un tipo particular de datos. Por ejemplo, para almacenar un número entero, se usaría IntegerField. Estos campos tienen una validación incorporada para un tipo de datos en particular, es decir, no puede almacenar «abc» en un IntegerField. Del mismo modo, para otros campos. Esta publicación gira en torno a los principales campos que se pueden usar en Django Models. 

Aquí hay algunos atributos clave que uno debe tener en cuenta antes de comenzar a usar Django Fields.  

tipos de campo

Cada campo del modelo debe ser una instancia de la clase Field adecuada. Django usa tipos de clase de campo para determinar algunas cosas: 

  • El tipo de columna, que le dice a la base de datos qué tipo de datos almacenar (por ejemplo, INTEGER, VARCHAR, TEXT).
  • El widget HTML predeterminado que se utilizará al representar un campo de formulario (p. ej., <tipo de entrada=”texto”>, <seleccionar>).
  • Los requisitos mínimos de validación, utilizados en la administración de Django y en formularios generados automáticamente.

Django se envía con docenas de tipos de campos incorporados que también se pueden usar para guardar cualquier tipo de datos, desde números hasta archivos HTML completos. Aquí hay una lista de todos los tipos de campo usados ​​en Django.  

Lista de campos y tipos de datos del modelo básico 

Nombre del campo Descripción
Campo automático Es un IntegerField que se incrementa automáticamente.
BigAutoField Es un número entero de 64 bits, muy parecido a un AutoField excepto que se garantiza que se ajusta a números del 1 al 9223372036854775807.
BigIntegerField Es un número entero de 64 bits, muy parecido a un IntegerField excepto que se garantiza que se ajusta a números desde -9223372036854775808 hasta 9223372036854775807.
BinaryField Un campo para almacenar datos binarios sin procesar. 
campo booleano Un campo verdadero/falso. 
El widget de formulario predeterminado para este campo es CheckboxInput.
CharField Un campo para almacenar valores basados ​​en texto.
campo de fecha Una fecha, representada en Python por una instancia datetime.date
Campo de fecha y hora Se usa para la fecha y la hora, representada en Python por una instancia de datetime.datetime.
campo decimal Es un número decimal de precisión fija, representado en Python por una instancia Decimal.
DuraciónCampo Un campo para almacenar períodos de tiempo.
Campo de correo electrónico Es un CharField que verifica que el valor sea una dirección de correo electrónico válida.
campo de archivo Es un campo de carga de archivos.
campo flotante Es un número de punto flotante representado en Python por una instancia flotante.
campo de imagen Hereda todos los atributos y métodos de FileField, pero también valida que el objeto cargado sea una imagen válida.
CampoEntero Es un campo entero. Los valores de -2147483648 a 2147483647 son seguros en todas las bases de datos compatibles con Django.
Campo de dirección IP genérico Una dirección IPv4 o IPv6, en formato de string (por ejemplo, 192.0.2.30 o 2a02:42fe::4).
NullBooleanField Como BooleanField, pero permite NULL como una de las opciones.
CampoEnteroPositivo Como un IntegerField, pero debe ser positivo o cero (0).
CampoEnteroPequeñoPositivo Como un PositiveIntegerField, pero solo permite valores bajo un cierto punto (dependiente de la base de datos).
campo de babosas Slug es un término periodístico. Un slug es una etiqueta corta para algo, que contiene solo letras, números, guiones bajos o guiones. Por lo general, se utilizan en las URL.
SmallIntegerField Es como un IntegerField, pero solo permite valores bajo un cierto punto (dependiente de la base de datos).
Campo de texto Un campo de texto grande. El widget de formulario predeterminado para este campo es un área de texto.
Campo de tiempo Una hora, representada en Python por una instancia de datetime.time.
campo URL Un CharField para una URL, validado por URLValidator.
campo UUIID Un campo para almacenar identificadores únicos universales. Utiliza la clase UUID de Python. Cuando se usa en PostgreSQL, se almacena en un tipo de datos uuid; de lo contrario, en char(32).

Campos de relación

Django también define un conjunto de campos que representan relaciones. 

Nombre del campo Descripción
Clave externa Una relación de muchos a uno. Requiere dos argumentos posicionales: la clase con la que está relacionado el modelo y la opción on_delete.
MuchosAMuchosCampo Una relación de muchos a muchos. Requiere un argumento posicional: la clase con la que se relaciona el modelo, que funciona exactamente igual que para ForeignKey, incluidas las relaciones recursivas y perezosas.
campo uno a uno Una relación de uno a uno. Conceptualmente, esto es similar a ForeignKey con unique=True, pero el lado «inverso» de la relación devolverá directamente un único objeto.

Publicación traducida automáticamente

Artículo escrito por NaveenArora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *