django-public-id

Long non-incremental IDs for public links. Essentially a compact form of UUID (22 bytes for 128-bit value)


License
BSD-3-Clause
Install
pip install django-public-id==2.2.1

Documentation

django-public-id Build Status Coverage Status

Long non-incremental IDs for public links.

Install

pip install django-public-id

Requirements

  • Python 2.7, 3.5+
  • Django 1.9+

Settings

put in settings.py (optional):

# use readable uuid by default
# example '831ff937-cb26-4876-ab94-d6cf44ad4ec1'
PUBLIC_ID_CHARS = None

# uuid with given chars (length will be enough to store 128 bits)
# example: '14URANtr8RaUTzZS05HIEp'
PUBLIC_ID_CHARS = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

Usage

from django.db import models
from public_id.fields import PublicIdField

class Post(models.Model):
    public_id = PublicIdField(auto=True)
    title = models.CharField(max_length=255)
    body = models.TextField(blank=True)