diff options
Diffstat (limited to 'django')
| -rw-r--r-- | django/db/backends/base/operations.py | 8 | ||||
| -rw-r--r-- | django/db/backends/oracle/operations.py | 8 | ||||
| -rw-r--r-- | django/db/backends/sqlite3/operations.py | 8 | ||||
| -rw-r--r-- | django/db/models/lookups.py | 11 |
4 files changed, 8 insertions, 27 deletions
diff --git a/django/db/backends/base/operations.py b/django/db/backends/base/operations.py index d5a40eb46e..9f40ec5e4f 100644 --- a/django/db/backends/base/operations.py +++ b/django/db/backends/base/operations.py @@ -562,10 +562,6 @@ class BaseDatabaseOperations: """ if value is None: return None - # Expression values are adapted by the database. - if hasattr(value, "resolve_expression"): - return value - return str(value) def adapt_timefield_value(self, value): @@ -575,10 +571,6 @@ class BaseDatabaseOperations: """ if value is None: return None - # Expression values are adapted by the database. - if hasattr(value, "resolve_expression"): - return value - if timezone.is_aware(value): raise ValueError("Django does not support timezone-aware times.") return str(value) diff --git a/django/db/backends/oracle/operations.py b/django/db/backends/oracle/operations.py index 9e8172b80a..aedfeea236 100644 --- a/django/db/backends/oracle/operations.py +++ b/django/db/backends/oracle/operations.py @@ -590,10 +590,6 @@ END; if value is None: return None - # Expression values are adapted by the database. - if hasattr(value, "resolve_expression"): - return value - # oracledb doesn't support tz-aware datetimes if timezone.is_aware(value): if settings.USE_TZ: @@ -610,10 +606,6 @@ END; if value is None: return None - # Expression values are adapted by the database. - if hasattr(value, "resolve_expression"): - return value - if isinstance(value, str): return datetime.datetime.strptime(value, "%H:%M:%S") diff --git a/django/db/backends/sqlite3/operations.py b/django/db/backends/sqlite3/operations.py index dfc9857b84..29a5c0391e 100644 --- a/django/db/backends/sqlite3/operations.py +++ b/django/db/backends/sqlite3/operations.py @@ -263,10 +263,6 @@ class DatabaseOperations(BaseDatabaseOperations): if value is None: return None - # Expression values are adapted by the database. - if hasattr(value, "resolve_expression"): - return value - # SQLite doesn't support tz-aware datetimes if timezone.is_aware(value): if settings.USE_TZ: @@ -283,10 +279,6 @@ class DatabaseOperations(BaseDatabaseOperations): if value is None: return None - # Expression values are adapted by the database. - if hasattr(value, "resolve_expression"): - return value - # SQLite doesn't support tz-aware datetimes if timezone.is_aware(value): raise ValueError("SQLite backend does not support timezone-aware times.") diff --git a/django/db/models/lookups.py b/django/db/models/lookups.py index c0bcc1b3bf..4a6e2b3241 100644 --- a/django/db/models/lookups.py +++ b/django/db/models/lookups.py @@ -268,11 +268,16 @@ class FieldGetDbPrepValueMixin: getattr(field, "get_db_prep_value", None) or self.lhs.output_field.get_db_prep_value ) + if not self.get_db_prep_lookup_value_is_iterable: + value = [value] return ( "%s", - [get_db_prep_value(v, connection, prepared=True) for v in value] - if self.get_db_prep_lookup_value_is_iterable - else [get_db_prep_value(value, connection, prepared=True)], + [ + v + if hasattr(v, "as_sql") + else get_db_prep_value(v, connection, prepared=True) + for v in value + ], ) |
