- Author:
- kedar
- Posted:
- March 6, 2014
- Language:
- Python
- Version:
- Not specified
- Score:
- 0 (after 0 ratings)
Provides UUIDField for your models. This version creates very short UUID represenation (21 chars) when the record is added eg. in admin. Generated ids are safe to be used in URLs.
You can put represent it in admin as
'readonly_fields=("uuid",)'
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | # in file field.py
# adjust add_introspection_rules line as needed
from django.conf import settings
from django.db.models import CharField
import uuid
class UUIDField(CharField) :
"""
UUIDField stored in 21 Chars
Example: uuid = UUIDField(editable=False)
"""
def __init__(self, *args, **kwargs):
kwargs['max_length'] = kwargs.get('max_length', 22 )
# kwargs['blank'] = True
kwargs['default'] = lambda: uuid.uuid4().bytes.encode('base64').rstrip('=\n').replace('/', '_')
CharField.__init__(self, *args, **kwargs)
###################
# South requires custom fields to be given "rules".
# See http://south.aeracode.org/docs/customfields.html
if "south" in settings.INSTALLED_APPS:
try:
from south.modelsinspector import add_introspection_rules
add_introspection_rules([], ["extend\.fields\.UUIDField"])
except ImportError:
pass
|
More like this
- get_object_or_none by azwdevops 3 months, 2 weeks ago
- Mask sensitive data from logger by agusmakmun 5 months, 1 week ago
- Template tag - list punctuation for a list of items by shapiromatron 1 year, 7 months ago
- JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 1 year, 7 months ago
- Serializer factory with Django Rest Framework by julio 2 years, 2 months ago
Comments
Please login first before commenting.