summaryrefslogtreecommitdiff
path: root/django/db/models
diff options
context:
space:
mode:
Diffstat (limited to 'django/db/models')
-rw-r--r--django/db/models/fields/__init__.py6
-rw-r--r--django/db/models/lookups.py2
2 files changed, 5 insertions, 3 deletions
diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py
index 03c7eafac6..d5dfac733f 100644
--- a/django/db/models/fields/__init__.py
+++ b/django/db/models/fields/__init__.py
@@ -1983,7 +1983,7 @@ class GenericIPAddressField(Field):
def get_db_prep_value(self, value, connection, prepared=False):
if not prepared:
value = self.get_prep_value(value)
- return value or None
+ return connection.ops.value_to_db_ipaddress(value)
def get_prep_value(self, value):
value = super(GenericIPAddressField, self).get_prep_value(value)
@@ -2366,8 +2366,10 @@ class UUIDField(Field):
def get_internal_type(self):
return "UUIDField"
- def get_prep_value(self, value):
+ def get_db_prep_value(self, value, connection, prepared=False):
if isinstance(value, uuid.UUID):
+ if connection.features.has_native_uuid_field:
+ return value
return value.hex
if isinstance(value, six.string_types):
return value.replace('-', '')
diff --git a/django/db/models/lookups.py b/django/db/models/lookups.py
index d7423762f3..7610c0dde4 100644
--- a/django/db/models/lookups.py
+++ b/django/db/models/lookups.py
@@ -198,7 +198,7 @@ class BuiltinLookup(Lookup):
db_type = self.lhs.output_field.db_type(connection=connection)
lhs_sql = connection.ops.field_cast_sql(
db_type, field_internal_type) % lhs_sql
- lhs_sql = connection.ops.lookup_cast(self.lookup_name) % lhs_sql
+ lhs_sql = connection.ops.lookup_cast(self.lookup_name, field_internal_type) % lhs_sql
return lhs_sql, params
def as_sql(self, compiler, connection):