Ticket #27148: 27148.diff

File 27148.diff, 1.1 KB (added by Tim Graham, 8 years ago)
  • django/db/models/fields/__init__.py

    diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py
    index f4f3170..c6cf279 100644
    a b class UUIDField(Field):  
    23712371        if value is None:
    23722372            return None
    23732373        if not isinstance(value, uuid.UUID):
    2374             try:
    2375                 value = uuid.UUID(value)
    2376             except AttributeError:
    2377                 raise TypeError(self.error_messages['invalid'] % {'value': value})
     2374            value = self.to_python(value)
    23782375
    23792376        if connection.features.has_native_uuid_field:
    23802377            return value
     2378
    23812379        return value.hex
    23822380
    23832381    def to_python(self, value):
    2384         if value and not isinstance(value, uuid.UUID):
     2382        if not isinstance(value, uuid.UUID):
    23852383            try:
    23862384                return uuid.UUID(value)
    2387             except ValueError:
     2385            except (AttributeError, ValueError):
    23882386                raise exceptions.ValidationError(
    23892387                    self.error_messages['invalid'],
    23902388                    code='invalid',
Back to Top