diff options
Diffstat (limited to 'django/db/models')
| -rw-r--r-- | django/db/models/fields/__init__.py | 6 | ||||
| -rw-r--r-- | django/db/models/lookups.py | 2 |
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): |
