Skip to content

A modern, Django model field for generating short, unique, URL-safe UUIDs using the shortuuid lib.

License

stabldev/django-shortuuid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

django-shortuuid

PyPI PyPI - Implementation GitHub License Build

A drop-in Django model field for generating short, URL-safe, and unique IDs using shortuuid.
Customizable, migration-friendly, with optional collision detection and Django admin integration.

Features

  • Short, URL-safe unique IDs for Django models (default 22 characters, configurable)
  • Customizable alphabet, prefix, and length
  • Optional database collision detection and retry logic
  • Django admin: field is read-only but visible
  • Compatible with Django migrations
  • Python type hints

Installation

pip install django-shortuuid

Usage

from django.db import models
from django_shortuuid.fields import ShortUUIDField

class MyModel(models.Model):
    id = ShortUUIDField(primary_key=True, prefix="id-")
    # ... other fields ...

By default, auto=True generates a unique short UUID when each instance is saved, and makes the field read-only in forms/admin.

Example

See django_example/ for a full Django setup and admin usage.

Configuration

  • auto: Generate and set value automatically (True by default)
  • length: Length of the generated unique string (default 22)
  • prefix: Optional string prefix for the field value
  • alphabet: Custom alphabet for uuid generation (default: shortuuid’s default)
  • collision_check: Enables collision checking in the database (True by default)
  • max_retries: Max attempts to generate unique value before error (10 by default)

License

MIT Copyright (c) stabldev

Credits

This project was inspired by benrobster/django-shortuuidfield
and builds on ideas from the original implementation.

Special thanks to shortuuid for the short, URL-safe UUID generation.

About

A modern, Django model field for generating short, unique, URL-safe UUIDs using the shortuuid lib.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages