Short-form UUID field for Django 1.8 and above
Project description
Installation
Installation using pip:
pip install django-smalluuid
Tested on:
Django >= 1.8 <= 1.11
Python 2.7, 3.4, 3.5, 3.6
Basic Usage
To get started use the SmallUUIDField field in your model definitions:
from django.db import models
from django_smalluuid.models import SmallUUIDField, uuid_default
class ExampleModel(models.Model):
uuid = SmallUUIDField(default=uuid_default())
The field provides values as instances of SmallUUID (see smalluuid):
>>> obj = ExampleModel.objects.create()
# The initial UUID has been auto-generated by uuid_default()
>>> obj.uuid
SmallUUID('T1q_P6HcQNSyW6tpqJTxww')
# It is still available in the groupex hex form (if needed)
>>> obj.hex_grouped
'4f5abf3f-a1dc-40d4-b25b-ab69a894f1c3'
# Filtering is done on the shortened UUIDs
>>> ExampleModel.objects.filter(uuid='T1q_P6HcQNSyW6tpqJTxww')
[<ExampleModel: ExampleModel object>]
Typed Usage
django-smalluuid also supports the Typed UUID’s as provided by smalluuid. This allows for the object’s type to be stored within the UUID.
Updating the above example:
from django.db import models
from django_smalluuid.models import SmallUUIDField, uuid_typed_default
class TypedExampleModel(models.Model):
uuid = SmallUUIDField(default=uuid_typed_default(type=42))
Which can be interacted with as follows:
>>> obj = TypedExampleModel.objects.create()
>>> obj.uuid
TypedSmallUUID('qvyk8nzbQfu8zAnTPQweyw')
>>> obj.uuid.type
42
Credits
django-smalluuid is packaged using seed and relies upon smalluuid.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
django-smalluuid-1.2.0.tar.gz
(7.8 kB
view hashes)
Built Distribution
Close
Hashes for django_smalluuid-1.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 86c1ad72fb59cfebc714827fab0cb210df5156f10060b9a63c8d2e052d1ea6e4 |
|
MD5 | 2437463fcc65c97e2e46ebd536b5faed |
|
BLAKE2b-256 | 2a8281d57b865315b72eff8f753c39cb401340e181f4591dcf353ae38d03a63a |