summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorCole Maclean <hi@cole.io>2015-06-04 14:42:26 +0100
committerTim Graham <timograham@gmail.com>2015-06-06 19:46:05 -0400
commit20ff296cb15a53b8b9517a834688e57749b43e21 (patch)
tree20a9eccc43e45cdce75fe3cf280a95cc43a2300d /django
parenteaf4d8c0d85056c3481986fe092d5a8786bc4f26 (diff)
Fixed #24859 -- Made QuerySet.get() with UUIDField raise TypeError on bad value.
For consistency with AutoField.
Diffstat (limited to 'django')
-rw-r--r--django/db/models/fields/__init__.py18
1 files changed, 11 insertions, 7 deletions
diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py
index b87af73994..568c66f4ac 100644
--- a/django/db/models/fields/__init__.py
+++ b/django/db/models/fields/__init__.py
@@ -2380,13 +2380,17 @@ class UUIDField(Field):
return "UUIDField"
def get_db_prep_value(self, value, connection, prepared=False):
- if isinstance(value, six.string_types):
- value = uuid.UUID(value)
- if isinstance(value, uuid.UUID):
- if connection.features.has_native_uuid_field:
- return value
- return value.hex
- return value
+ if value is None:
+ return None
+ if not isinstance(value, uuid.UUID):
+ try:
+ value = uuid.UUID(value)
+ except AttributeError:
+ raise TypeError(self.error_messages['invalid'] % {'value': value})
+
+ if connection.features.has_native_uuid_field:
+ return value
+ return value.hex
def to_python(self, value):
if value and not isinstance(value, uuid.UUID):