Django field that automatically generates random slugs.
e.g. example.com/kEwD58P
Tested with Python 2.7, 3.3+ and Django 1.4+.
To install django-randomslugfield:
$ pip install django-randomslugfield
To enable randomslugfield
in your project you need to add it to
INSTALLED_APPS
in your projects settings.py
file:
INSTALLED_APPS = (
...
'randomslugfield',
...
)
Import RandomSlugField
and use it in your model:
from django.db import models
from randomslugfield import RandomSlugField
class MyModel(models.Model):
slug = RandomSlugField(length=7)
The length
argument is required.
By default randomslugfield generates its slug using these characters:
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
You can optionally exclude lowercase/uppercase/digits/vowels using
exclude_lower=True
, exclude_upper=True
, exclude_digits=True
,
exclude_vowels=True
.
You cannot exclude all characters.
Example:
class MyModel(models.Model):
slug = RandomSlugField(length=7, exclude_lower=True)
The total number of unique slugs is determined by characters^length
.
62^9 = 13,537,086,546,263,552 possible slugs 62^8 = 218,340,105,584,896 possible slugs 62^7 = 3,521,614,606,208 possible slugs 62^6 = 56,800,235,584 possible slugs 62^5 = 916,132,832 possible slugs