SlugField - Django Models - GeeksforGeeks

12 Feb, 2020
A Slug is basically a short label for something, containing only letters, numbers, underscores or hyphens. They’re generally used in URLs. For example, in a typical blog entry URL:
https://www.geeksforgeeks.org/add-the-slug-field-inside-django-model/
Here, the last data add-the-slug-field-inside-django-model is the slug.
SlugField in Django is like a CharField, where you can specify max_length attribute also. If max_length is not specified, Django will use a default length of 50. It also implies setting Field.db_index to True.It is often useful to automatically prepopulate a SlugField based on the value of some other value.It uses validate_slug or validate_unicode_slug for validation.
Syntax
field_name = models.SlugField(max_length=200, **options)
SlugField has following optional arguments:
SlugField.max_length
The maximum length (in characters) of the field. The max_length is enforced at the database level and in Django’s validation using MaxLengthValidator.
SlugField.allow_unicode
If True, the field accepts Unicode letters in addition to ASCII letters. Defaults to False.
Illustration of SlugField using an Example. Consider a project named geeksforgeeks having an app named geeks.
Refer to the following articles to check how to create a project and an app in Django.
How to Create a Basic Project using MVT in Django?
How to Create an App in Django ?
Enter the following code into models.py file of geeks app.
from django.db import modelsfrom django.db.models import Model# Create your models here.  class GeeksModel(Model):    geeks_field = models.SlugField(max_length = 200)
Add the geeks app to INSTALLED_APPS
# Application definition  INSTALLED_APPS = [    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles',    'geeks',]
Now when we run makemigrations command from the terminal,
Python manage.py makemigrations
A new folder named migrations would be created in geeks directory with a file named 0001_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,                )),            ],        ),    ]
Now run,
Python manage.py migrate
Thus, an geeks_field SlugField is created when you run migrations on the project.
SlugField is used for storing basically storing URL paths after a particular URL. To know more about how to properly add a SlugField to Django Project, refer this article – Add the slug field inside Django Model
# importing the model# from geeks appfrom geeks.models import GeeksModel  # creating a instance of # GeeksModelgeek_object = GeeksModel.objects.create(geeks_field ="")geek_object.save()
Now let’s check it in admin server. We have created an instance of GeeksModel.
Field Options are the arguments given to each field for applying some constraint or imparting a particular characteristic to a particular Field. For example, adding an argument null = True to SlugField will enable it to store empty values for that table in relational database.Here are the field options and attributes that an SlugField can use.
NaveenArora
Django-models
Python Django
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Python Dictionary
Read a file line by line in Python
How to Install PIP on Windows ?
Enumerate() in Python
Different ways to create Pandas Dataframe
Iterate over a list in Python
Python String | replace()
*args and **kwargs in Python
Reading and Writing to text files in Python
Create a Pandas DataFrame from Lists