summaryrefslogtreecommitdiff
path: root/django/db/models/sql/compiler.py
diff options
context:
space:
mode:
authorGagaro <gagaro42@gmail.com>2022-01-31 15:51:38 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2022-03-16 09:33:16 +0100
commitbf524d229f3c1008f41450e2750b85395aa75fe6 (patch)
tree9ba097a0230f9fd818ca07907fcdb2429b9221a1 /django/db/models/sql/compiler.py
parent970f5bf5035d8c99b0ff883f984b60cf531dddbe (diff)
downloaddjango-bf524d229f3c1008f41450e2750b85395aa75fe6.tar.gz
Refs #30581 -- Allowed sql.Query to be used without model.
Diffstat (limited to 'django/db/models/sql/compiler.py')
-rw-r--r--django/db/models/sql/compiler.py13
1 files changed, 9 insertions, 4 deletions
diff --git a/django/db/models/sql/compiler.py b/django/db/models/sql/compiler.py
index 28d412e11a..ce2787b6c0 100644
--- a/django/db/models/sql/compiler.py
+++ b/django/db/models/sql/compiler.py
@@ -310,8 +310,8 @@ class SQLCompiler:
ordering = self.query.order_by
elif self.query.order_by:
ordering = self.query.order_by
- elif self.query.get_meta().ordering:
- ordering = self.query.get_meta().ordering
+ elif (meta := self.query.get_meta()) and meta.ordering:
+ ordering = meta.ordering
self._meta_ordering = ordering
else:
ordering = []
@@ -645,7 +645,11 @@ class SQLCompiler:
params.extend(s_params)
out_cols.append(s_sql)
- result += [", ".join(out_cols), "FROM", *from_]
+ result += [", ".join(out_cols)]
+ if from_:
+ result += ["FROM", *from_]
+ elif self.connection.features.bare_select_suffix:
+ result += [self.connection.features.bare_select_suffix]
params.extend(f_params)
if self.query.select_for_update and features.has_select_for_update:
@@ -796,7 +800,8 @@ class SQLCompiler:
"""
result = []
if opts is None:
- opts = self.query.get_meta()
+ if (opts := self.query.get_meta()) is None:
+ return result
only_load = self.deferred_to_columns()
start_alias = start_alias or self.query.get_initial_alias()
# The 'seen_models' is used to optimize checking the needed parent