diff options
| author | Simon Charette <charette.s@gmail.com> | 2024-01-13 16:16:58 -0500 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2024-01-16 08:34:14 +0100 |
| commit | 0fcee1676c7f14bb08e2cc662898dee56d9cf207 (patch) | |
| tree | 5536612166bc4867578cddbdaedc062c3e7621a0 /django | |
| parent | 561f77041542f9081288af2af97a289544a57e2a (diff) | |
Fixed #35111 -- Fixed compilation of DateField __in/__range rhs on SQLite and MySQL.
Also removed tests that ensured that adapt_(date)timefield backend
operations where able to deal with expressions when it's not the case
for any other adapt methods.
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 + ], ) |
