Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

django-slugger

pipeline status coverage report pypi version license python versions django versions

Automatic slug field for Django models.

Features

  • One query to rule them all. No database spam on model save.
  • Supports all standard unique_for field attributes like unique_for_date.
  • Supports model meta unique_together.
  • Supports custom "slugify" functions.

How it works

django-slugger provides AutoSlugField which value is automatically generated if it is not filled manually. If the field has any "uniqueness" constraint (unique=True, for example), numerical suffix will be used if necessary to prevent constraint violation.

If generated slug exceeds field max_length, slug value will be cut to fit in. This does not apply to suffixed slugs. Increase max_length attribute value or use custom slug template if you need more space to ensure slug uniqueness.

Installation

pip install django-slugger

Usage

from slugger import AutoSlugField

class AutoSlugModel(models.Model):
    title = models.CharField(max_length=255)
    slug = AutoSlugField(populate_from='title')

Custom slug template

By default, django-slugger will use Django slugify function (combined with unidecode to handle non-ASCII characters). To use your own function, specify it in slugify argument.

    def custom_slugify(value):
        return 'custom-%s' % value

    class CustomAutoSlugModel(models.Model):
        title = models.CharField(max_length=255)
        slug = AutoSlugField(populate_from='title', slugify=custom_slugify)

Note: slugify argument must be top-level named function.

About

Automatic slug field for Django. Mirror of https://gitlab.com/dspechnikov/django-slugger

Resources

License

Packages

No packages published

Languages