Encoding Functions¶
Low-level functions for encoding and decoding display IDs.
UUID Encoding¶
encode_uuid¶
Encode a UUID to a 22-character base62 string.
from django_display_ids import encode_uuid
import uuid
u = uuid.UUID("550e8400-e29b-41d4-a716-446655440000")
encoded = encode_uuid(u) # -> "2aUyqjCzEIiEcYMKj7TZtw"
decode_uuid¶
Decode a base62 string back to a UUID.
from django_display_ids import decode_uuid
u = decode_uuid("2aUyqjCzEIiEcYMKj7TZtw")
# -> UUID("550e8400-e29b-41d4-a716-446655440000")
Raises ValueError if the string is not valid base62 or wrong length.
Display ID Encoding¶
encode_display_id¶
Create a display ID from a prefix and UUID.
from django_display_ids import encode_display_id
import uuid
invoice_id = uuid.uuid4()
display_id = encode_display_id("inv", invoice_id)
# -> "inv_2aUyqjCzEIiEcYMKj7TZtw"
Parameters:
prefix1-16 lowercase letters.
uuidA UUID object.
Raises ValueError if the prefix is invalid.
decode_display_id¶
Extract the prefix and UUID from a display ID.
from django_display_ids import decode_display_id
prefix, u = decode_display_id("inv_2aUyqjCzEIiEcYMKj7TZtw")
# prefix -> "inv"
# u -> UUID("550e8400-e29b-41d4-a716-446655440000")
Raises InvalidIdentifierError if the format is invalid.
Display ID Format¶
A display ID consists of:
Component |
Description |
|---|---|
Prefix |
1-16 lowercase letters ( |
Separator |
Underscore ( |
Encoded UUID |
22 base62 characters ( |
Pattern: ^[a-z]{1,16}_[0-9A-Za-z]{22}$
Example: inv_2aUyqjCzEIiEcYMKj7TZtw
Base62 Alphabet¶
The base62 encoding uses: 0-9, A-Z, a-z (62 characters total).
UUIDs are 128 bits, which requires exactly 22 base62 characters to represent.