Generate Slugs with slugify

A snippet showing how to generate slugs for models or utils.


# models.py
from django.db import models
from django.utils.text import slugify

class Article(models.Model):
    title = models.CharField(max_length=150)
    slug = models.SlugField(unique=True, blank=True)

    def save(self, *args, **kwargs):
        if not self.slug:
            self.slug = slugify(self.title)
        super().save(*args, **kwargs)
  

# admin.py
from django.contrib import admin
from .models import Article

@admin.register(Article)
class ArticleAdmin(admin.ModelAdmin):
    list_display = ("title", "slug")
  
Explanation:
  • Use django.utils.text.slugify to create URL-friendly slugs.
  • Fill slug if blank to avoid overwriting user edits.
Previous snippet
Django Humanize Filters
Next snippet
UUID Primary Keys
Never miss a story on Django.wiki

Subscribe for fresh tutorials, snippets, and updates.

By subscribing you agree to our Privacy Policy.