1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | from django.db.models import CharField
try:
import uuid
except ImportError:
from django.utils import uuid
class UUIDField(CharField) :
def __init__(self, *args, **kwargs):
kwargs['max_length'] = kwargs.get('max_length', 32 )
CharField.__init__(self, *args, **kwargs)
def pre_save(self, model_instance, add):
if add :
value=getattr(model_instance,self.attname)
if not value:
value = unicode(uuid.uuid4()).replace('-','')
setattr(model_instance, self.attname, value)
return value
else:
return super(CharField, self).pre_save(model_instance, add)
|
More like this
- UUIDField oriented django User by bwhittington 4 years ago
- CompressedTextField for Django 1.0+ by bwhittington 4 years ago
- CompressedTextField for Django 1.4+ by devhulu 3 months, 1 week ago
- Unobtrusive comment moderation, updated for Django 1.0 by shimonrura 4 years, 4 months ago
- grep and delete sqlite tables by kifkif 3 years, 5 months ago
Comments
Instead of: value = unicode(uuid.uuid4()).replace('-','')
It would be better: value = unicode(uuid.uuid4().hex)
Also, check this: http://code.google.com/p/django-command-extensions
They have something like this (is this better?)
#