# Django UUID # # Douglas Thrift # # $Id$ from django.core import exceptions from django.db import models from django.utils.translation import ugettext as _ import uuid class UUIDField(models.Field): __metaclass__ = models.SubfieldBase def db_type(self, connection): return 'uuid' def get_prep_value(self, value): if isinstance(value, uuid.UUID): return str(value) return value def to_python(self, value): if value is None or isinstance(value, uuid.UUID): return value try: return uuid.UUID(value) except (AttributeError, ValueError): raise exceptions.ValidationError(_('This value must be a UUID.'))