Las validaciones de campo incorporadas en los modelos de Django son las validaciones predeterminadas que vienen predefinidas para todos los campos de Django. Cada campo viene con validaciones integradas de los validadores de Django . También se pueden agregar más validaciones de campo integradas para aplicar o eliminar ciertas restricciones en un campo en particular. null=True
hará que el campo acepte valores NULL . Los valores en blanco para los tipos de campo de Django como DateTimeField o ForeignKey se almacenarán como NULL en la base de datos.
Sintaxis
field_name = models.Field(null = True)
null=True
Explicación de validación de campo incorporado de Django
Ilustración de null=True utilizando un ejemplo. Considere un proyecto llamado geeksforgeeks
que tiene una aplicación llamada geeks
.
Consulte los siguientes artículos para comprobar cómo crear un proyecto y una aplicación en Django.
Ingrese el siguiente código en models.py
el archivo de la aplicación geeks . Usaremos CharField para experimentar con todas las opciones de campo.
from django.db import models from django.db.models import Model # Create your models here. class GeeksModel(Model): geeks_field = models.CharField(max_length = 200, null = True)
Después de ejecutar makemigrations y migrar en Django y renderizar el modelo anterior, intentemos crear una instancia usando None from Django shell. Para iniciar Django shell, ingrese el comando,
Python manage.py shell
Ahora intentemos crear una instancia de GeeksModel usando None .
# importing required model from geeks.models import GeeksModel # creating instance of GeeksModel s = GeeksModel.objects.create(geeks_field = None) # saving current model instance s.save()
Verifiquemos en la interfaz de administración si se crea la instancia del modelo.
Por lo tanto, null=True modifica el campo para aceptar valores NULL o, en los términos de python, None Values.
Conceptos avanzados con null=True
Evite usar null en campos basados en strings como CharField y TextField . Si un campo basado en strings tiene null=True
, eso significa que tiene dos valores posibles para » sin datos «: NULL y la string vacía . En la mayoría de los casos, es redundante tener dos valores posibles para «sin datos»; la convención de Django es usar la string vacía, no NULL. Una excepción es cuando un CharField tiene ambos conjuntos unique=True y blank=True . En esta situación, null=True
es necesario evitar violaciones de restricciones únicas al guardar varios objetos con valores en blanco.
Tanto para los campos basados en strings como para los que no están basados en strings, también deberá configurar blank=True
si desea permitir valores vacíos en los formularios, ya que el parámetro nulo solo afecta el almacenamiento de la base de datos (ver en blanco).
Más validaciones de campo integradas
Opciones de campo | Descripción |
---|---|
Nulo | Si es True , Django almacenará valores vacíos como NULL en la base de datos. El valor predeterminado es Falso . |
Vacío | Si es True , el campo puede estar en blanco. El valor predeterminado es Falso . |
columna_db | El nombre de la columna de la base de datos que se usará para este campo. Si no se proporciona, Django usará el nombre del campo. |
Defecto | El valor predeterminado para el campo. Puede ser un valor o un objeto invocable. Si es invocable, se llamará cada vez que se cree un nuevo objeto. |
texto de ayuda | Texto adicional de «ayuda» que se mostrará con el widget de formulario. Es útil para la documentación incluso si su campo no se usa en un formulario. |
Clave primaria | Si es Verdadero, este campo es la clave principal para el modelo. |
editable | Si es False , el campo no se mostrará en el administrador ni en ningún otro ModelForm. También se omiten durante la validación del modelo. El valor predeterminado es Verdadero . |
error de mensajes | El argumento error_messages le permite anular los mensajes predeterminados que generará el campo. Pase un diccionario con claves que coincidan con los mensajes de error que desea anular. |
texto de ayuda | Texto adicional de «ayuda» que se mostrará con el widget de formulario. Es útil para la documentación incluso si su campo no se usa en un formulario. |
nombre_verbose | Un nombre legible por humanos para el campo. Si no se proporciona el nombre detallado, Django lo creará automáticamente utilizando el nombre del atributo del campo, convirtiendo los guiones bajos en espacios. |
validadores | Una lista de validadores para ejecutar para este campo. Consulte la documentación de los validadores para obtener más información. |
Único | Si es Verdadero, este campo debe ser único en toda la tabla. |
Publicación traducida automáticamente
Artículo escrito por NaveenArora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA