summaryrefslogtreecommitdiff
path: root/django/db/models/sql/query.py
diff options
context:
space:
mode:
authorAlexander Lyabah <a.lyabah@checkio.org>2020-11-28 18:08:27 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2021-01-05 10:37:11 +0100
commit415f50298f97fb17f841a9df38d995ccf347dfcc (patch)
tree3907c7f089deaae35a4d1f96e1208ba2e79e8aa1 /django/db/models/sql/query.py
parentaa3d36063174cc1e16a1e5150b6b47609dd1e79a (diff)
Fixed #32231 -- Allowed passing None params to QuerySet.raw().
Diffstat (limited to 'django/db/models/sql/query.py')
-rw-r--r--django/db/models/sql/query.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py
index 93cc32ac3c..a39430b28d 100644
--- a/django/db/models/sql/query.py
+++ b/django/db/models/sql/query.py
@@ -69,8 +69,8 @@ JoinInfo = namedtuple(
class RawQuery:
"""A single raw SQL query."""
- def __init__(self, sql, using, params=None):
- self.params = params or ()
+ def __init__(self, sql, using, params=()):
+ self.params = params
self.sql = sql
self.using = using
self.cursor = None
@@ -111,9 +111,13 @@ class RawQuery:
@property
def params_type(self):
+ if self.params is None:
+ return None
return dict if isinstance(self.params, Mapping) else tuple
def __str__(self):
+ if self.params_type is None:
+ return self.sql
return self.sql % self.params_type(self.params)
def _execute_query(self):
@@ -127,6 +131,8 @@ class RawQuery:
params = tuple(adapter(val) for val in self.params)
elif params_type is dict:
params = {key: adapter(val) for key, val in self.params.items()}
+ elif params_type is None:
+ params = None
else:
raise RuntimeError("Unexpected params type: %s" % params_type)