AutoField – Modelos de Django

Según la documentación, un AutoField es un IntegerField que se incrementa automáticamente según los ID disponibles. Por lo general, no será necesario usar esto directamente porque un campo de clave principal se agregará automáticamente a su modelo si no especifica lo contrario.

Por defecto, Django le da a cada modelo el siguiente campo:

id = models.AutoField(primary_key=True, **options)

Esta es una clave principal de incremento automático. Incluso si el modelo no tiene ningún campo, se creará un campo predeterminado denominado id.

Django Model AutoField Explicación

Ilustración de AutoField usando un ejemplo. Considere un proyecto llamado geeksforgeeksque 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.pyel archivo de la aplicación geeks .

from django.db import models
from django.db.models import Model
# Create your models here.
  
class GeeksModel(Model):
    pass

Agregue la aplicación geeks aINSTALLED_APPS

# Application definition
  
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'geeks',
]

Ahora, cuando ejecutamos makemigrationsel comando desde la terminal,

Python manage.py makemigrations

Se crearía una nueva carpeta llamada migraciones en el geeksdirectorio con un archivo llamado0001_initial.py

# Generated by Django 2.2.5 on 2019-09-25 06:00
  
from django.db import migrations, models
  
class Migration(migrations.Migration):
  
    initial = True
  
    dependencies = [
    ]
  
    operations = [
        migrations.CreateModel(
            name ='GeeksModel',
            fields =[
                ('id', 
                  models.AutoField(auto_created = True,
                  primary_key = True,
                  serialize = False, 
                  verbose_name ='ID'
                )),
            ],
        ),
    ]

Por lo tanto, un id AutoField que se incrementa automáticamente en cada instancia de ese modelo se crea de forma predeterminada cuando ejecuta makemigrations en el proyecto. Es una clave principal para la tabla creada para el modelo denominado GeeksModel.

Si creamos objetos de este modelo vacío desde el servidor de administración. podemos ver el campo de identificación autoincrementándose en cada instancia creada.
Django-model-autofield

Opciones de campo

Las opciones de campo son los argumentos dados a cada campo para aplicar alguna restricción o impartir una característica particular a un campo en particular. Por ejemplo, agregar un argumento primary_key=Truea AutoField lo convertirá en la clave principal para esa tabla en la base de datos relacional.
Estas son las opciones y los atributos que puede usar un campo automático.

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

Deja una respuesta

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