diff options
| author | Hasan Ramezani <hasan.r67@gmail.com> | 2020-07-28 13:56:39 +0200 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2020-07-29 08:20:58 +0200 |
| commit | 9c9a3fe1180fc92fbd4c3302dbe0b3e083bf0381 (patch) | |
| tree | f3497614127fe35854556086a4182998b05f3878 /django | |
| parent | b6dfdaff33f19757b1cb9b3bf1d17f28b94859d4 (diff) | |
Fixed #31783 -- Fixed crash when filtering againts "negate" field.
Thanks Simon Charette for the initial patch.
Diffstat (limited to 'django')
| -rw-r--r-- | django/db/models/query.py | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/django/db/models/query.py b/django/db/models/query.py index 07d6ffd4ca..d655ede8d9 100644 --- a/django/db/models/query.py +++ b/django/db/models/query.py @@ -204,7 +204,7 @@ class QuerySet: def query(self): if self._deferred_filter: negate, args, kwargs = self._deferred_filter - self._filter_or_exclude_inplace(negate, *args, **kwargs) + self._filter_or_exclude_inplace(negate, args, kwargs) self._deferred_filter = None return self._query @@ -939,7 +939,7 @@ class QuerySet: set. """ self._not_support_combined_queries('filter') - return self._filter_or_exclude(False, *args, **kwargs) + return self._filter_or_exclude(False, args, kwargs) def exclude(self, *args, **kwargs): """ @@ -947,9 +947,9 @@ class QuerySet: set. """ self._not_support_combined_queries('exclude') - return self._filter_or_exclude(True, *args, **kwargs) + return self._filter_or_exclude(True, args, kwargs) - def _filter_or_exclude(self, negate, *args, **kwargs): + def _filter_or_exclude(self, negate, args, kwargs): if args or kwargs: assert not self.query.is_sliced, \ "Cannot filter a query once a slice has been taken." @@ -959,10 +959,10 @@ class QuerySet: self._defer_next_filter = False clone._deferred_filter = negate, args, kwargs else: - clone._filter_or_exclude_inplace(negate, *args, **kwargs) + clone._filter_or_exclude_inplace(negate, args, kwargs) return clone - def _filter_or_exclude_inplace(self, negate, *args, **kwargs): + def _filter_or_exclude_inplace(self, negate, args, kwargs): if negate: self._query.add_q(~Q(*args, **kwargs)) else: @@ -983,7 +983,7 @@ class QuerySet: clone.query.add_q(filter_obj) return clone else: - return self._filter_or_exclude(False, **filter_obj) + return self._filter_or_exclude(False, args=(), kwargs=filter_obj) def _combinator_query(self, combinator, *other_qs, all=False): # Clone the query to inherit the select list and everything |
