summaryrefslogtreecommitdiff
path: root/django/contrib/admin
diff options
context:
space:
mode:
authorNick Pope <nick@nickpope.me.uk>2021-09-21 00:49:16 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2022-07-27 10:06:24 +0200
commit9dff316be41847c505ebf397e4a52a0a71e0acc4 (patch)
tree1bf4412223b6c0467ae5107df9422ea1406b86d6 /django/contrib/admin
parent845667f2d1eb7063c568764a01fc9ee633ec5817 (diff)
Refs #32948, Refs #32946 -- Used Q.create() internally for dynamic Q() objects.
Node.create() which has a compatible signature with Node.__init__() takes in a single `children` argument rather than relying in unpacking *args in Q.__init__() which calls Node.__init__(). In addition, we were often needing to unpack iterables into *args and can instead pass a list direct to Node.create().
Diffstat (limited to 'django/contrib/admin')
-rw-r--r--django/contrib/admin/filters.py2
-rw-r--r--django/contrib/admin/options.py8
2 files changed, 5 insertions, 5 deletions
diff --git a/django/contrib/admin/filters.py b/django/contrib/admin/filters.py
index ec97605f14..dd6954a065 100644
--- a/django/contrib/admin/filters.py
+++ b/django/contrib/admin/filters.py
@@ -527,7 +527,7 @@ class EmptyFieldListFilter(FieldListFilter):
lookup_conditions.append((self.field_path, ""))
if self.field.null:
lookup_conditions.append((f"{self.field_path}__isnull", True))
- lookup_condition = models.Q(*lookup_conditions, _connector=models.Q.OR)
+ lookup_condition = models.Q.create(lookup_conditions, connector=models.Q.OR)
if self.lookup_val == "1":
return queryset.filter(lookup_condition)
return queryset.exclude(lookup_condition)
diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py
index cb77048fe1..8ccacd6213 100644
--- a/django/contrib/admin/options.py
+++ b/django/contrib/admin/options.py
@@ -1146,12 +1146,12 @@ class ModelAdmin(BaseModelAdmin):
for bit in smart_split(search_term):
if bit.startswith(('"', "'")) and bit[0] == bit[-1]:
bit = unescape_string_literal(bit)
- or_queries = models.Q(
- *((orm_lookup, bit) for orm_lookup in orm_lookups),
- _connector=models.Q.OR,
+ or_queries = models.Q.create(
+ [(orm_lookup, bit) for orm_lookup in orm_lookups],
+ connector=models.Q.OR,
)
term_queries.append(or_queries)
- queryset = queryset.filter(models.Q(*term_queries))
+ queryset = queryset.filter(models.Q.create(term_queries))
may_have_duplicates |= any(
lookup_spawns_duplicates(self.opts, search_spec)
for search_spec in orm_lookups