Skip to main content

python-ulid-django

ULID (Universally Unique Lexicographically Sortable Identifier) support for Django.

This package uses the ULID type implemented by python-ulid.

This package is heavily inspired by django-ulid. The reason I'm reinventing the wheel is that I want to use python-ulib's ULID implementation.

Usage

Installation

pip install python-ulid-django

Model Field

You can then add ULIDField to your Django model just like other fields.

Example:

from django.contrib.auth.models import AbstractUser
from ulid import ULID
from ulid_django.models import ULIDField


class User(AbstractUser):
    id = ULIDField(primary_key=True, default=ULID, editable=False)

URL Converter

There is also a URL converter can be used.

from django.urls import path, register_converter
from ulid import ULID
from ulid_django.converters import ULIDConverter


def user_detail_view(request, user_id):
    assert isinstance(user_id, ULID)
    ...


register_converter(ULIDConverter, "ulid")

urlpatterns = [
    path("user/<ulid:user_id>/", user_detail_view),
    ...,
]

Development

Prerequisite: PDM

Environment setup: pdm sync

Run linters: pdm lint

Test: pdm test

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python_ulid_django-1.5.0.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

python_ulid_django-1.5.0-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

Details for the file python_ulid_django-1.5.0.tar.gz.

File metadata

  • Download URL: python_ulid_django-1.5.0.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for python_ulid_django-1.5.0.tar.gz
Algorithm Hash digest
SHA256 a24785f997a016ff48361e3833694ce25b9a04aa892294690e6ae3e16dd90a02
MD5 5c262749008b3974d62f118cf349c1f5
BLAKE2b-256 09fa476569bcc71afe0b2f2399128463fd7211e6caf914d2a27f1c210498dbc2

See more details on using hashes here.

File details

Details for the file python_ulid_django-1.5.0-py3-none-any.whl.

File metadata

  • Download URL: python_ulid_django-1.5.0-py3-none-any.whl
  • Upload date:
  • Size: 5.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for python_ulid_django-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 62874af5c0c8e24110b7259badd2731dd88ee156164978d87547fd8825563b7d
MD5 4f504d85e14a839312790244caa79875
BLAKE2b-256 933875289e3e07c2317568990832ba42d6f50bd9854848d399df07056fbb1fee

See more details on using hashes here.

Release history Release notifications | RSS feed

1.6.0

2 files

This release

1.5.0 This release

2 files

1.4.0

2 files

1.3.0

2 files

1.2.1

2 files

1.2.0

2 files

1.1.1

2 files

1.1.0

2 files

1.0.1

2 files

1.0.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page