From 415f50298f97fb17f841a9df38d995ccf347dfcc Mon Sep 17 00:00:00 2001 From: Alexander Lyabah Date: Sat, 28 Nov 2020 18:08:27 +0200 Subject: Fixed #32231 -- Allowed passing None params to QuerySet.raw(). --- django/db/models/sql/query.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'django/db/models/sql') 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) -- cgit v1.3