Un Slug es básicamente una etiqueta corta para algo, que contiene solo letras, números, guiones bajos o guiones. Por lo general, se utilizan en las URL. Por ejemplo, en una URL típica de entrada de blog:
https://www.geeksforgeeks.org/add-the-slug-field-inside-django-model/
Aquí, el último dato add-the-slug-field-inside-django-model
es el slug.
campo de babosas:
SlugField en Django es como un CharField, donde también puede especificar un max_length
atributo. Si no se especifica max_length, Django usará una longitud predeterminada de 50. También implica establecer Field.db_index en True . A menudo es útil rellenar automáticamente un SlugField en función del valor de algún otro valor . .
Sintaxis
field_name = models.SlugField(max_length=200, **options)
SlugField tiene los siguientes argumentos opcionales:
SlugField.max_length
La longitud máxima (en caracteres) del campo. Se max_length
aplica a nivel de la base de datos y en la validación de Django usando MaxLengthValidator .
SlugField.allow_unicode
Si es Verdadero, el campo acepta letras Unicode además de letras ASCII. El valor predeterminado es falso.
Django Modelo SlugField Explicación
Ilustración de SlugField usando 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 .
from django.db import models from django.db.models import Model # Create your models here. class GeeksModel(Model): geeks_field = models.SlugField(max_length = 200)
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 makemigrations
el comando desde la terminal,
Python manage.py makemigrations
Se crearía una nueva carpeta llamada migraciones en el geeks
directorio 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' )), ('geeks_field', models.SlugField( max_length = 200, )), ], ), ]
Ahora corre,
Python manage.py migrate
Por lo tanto, se crea un geeks_field
SlugField cuando ejecuta migraciones en el proyecto.
¿Cómo usar SlugField?
SlugField se usa para almacenar básicamente rutas URL después de una URL en particular. Para saber más sobre cómo agregar correctamente un SlugField a Django Project, consulte este artículo: Agregar el campo slug dentro del modelo Django
# importing the model # from geeks app from geeks.models import GeeksModel # creating a instance of # GeeksModel geek_object = GeeksModel.objects.create(geeks_field ="") geek_object.save()
Ahora vamos a comprobarlo en el servidor de administración. Hemos creado una instancia de GeeksModel.
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 null = True
a SlugField le permitirá almacenar valores vacíos para esa tabla en la base de datos relacional.
Estas son las opciones de campo y los atributos que puede usar un SlugField.
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