Django Random ID Model
This module provides a base class for Django models that gives them a random primary key id.
For example, this is the vanilla way to do primary keys:
from django.db import models
class Customer(models.Model):
name = models.CharField(max_length=50)
customer1 = Customer.objects.create(name="John")
customer2 = Customer.objects.create(name="Jane")
print(customer1.id) # '1'
print(customer2.id) # '2'
The primary key just auto increments.
Now use RandomIDModel:
from django.db import models
from django_random_id_model import RandomIDModel
class Customer(RandomIDModel):
name = models.CharField(max_length=50)
customer1 = Customer.objects.create(name="John")
customer2 = Customer.objects.create(name="Jane")
print(customer1.id) # '725393588906066'
print(customer2.id) # '905529381860540'
The ID is guaranteed to be unique.
By default the ID will be 12 digits long, but you can override this in
settings.py with the ID_DIGITS_LENGTH setting.
RandomIDModel inherits directly from models.Model and does not interfere
with anything else, so you can use it wherever you would use models.Model.
Forms and Admin
To integrate your model with a Django ModelForm, you will need to manually
exclude the id field:
from django.forms import ModelForm
class CustomerForm(ModelForm):
class Meta:
model = Customer
exclude = ["id"]
Likewise if you use the Django Admin app:
from django.contrib import admin
class CustomerAdmin(admin.ModelAdmin):
exclude = ["id"]
admin.site.register(Customer, CustomerAdmin)
Metadata
Release files for django-random-id-model 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| django_random_id_model-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Release files / django_random_id_model-0.2.0-py3-none-any.whl
| Download URL | django_random_id_model-0.2.0-py3-none-any.whl |
|---|---|
| Size | 2.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c0fb592272a25dd0b920349c1e4e843b759e367cdd6a540802088e3a82c05c82
|
|
BLAKE2b-256 checksum How to use checksums |
095ba4f1aa6dc520a36c897c8065a1a07b7f5c858c8bc644499be95843e7b69e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.9.6
|