summaryrefslogtreecommitdiff
path: root/django/db/models/sql/query.py
diff options
context:
space:
mode:
Diffstat (limited to 'django/db/models/sql/query.py')
-rw-r--r--django/db/models/sql/query.py23
1 files changed, 11 insertions, 12 deletions
diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py
index 81f6f196d3..beb57f8ecd 100644
--- a/django/db/models/sql/query.py
+++ b/django/db/models/sql/query.py
@@ -1096,12 +1096,11 @@ class Query:
and get_transform().
"""
# __exact is the default lookup if one isn't given.
- lookups = lookups or ['exact']
- for name in lookups[:-1]:
+ *transforms, lookup_name = lookups or ['exact']
+ for name in transforms:
lhs = self.try_transform(lhs, name)
# First try get_lookup() so that the lookup takes precedence if the lhs
# supports both transform and lookup for the name.
- lookup_name = lookups[-1]
lookup_class = lhs.get_lookup(lookup_name)
if not lookup_class:
if lhs.field.is_relation:
@@ -1406,11 +1405,11 @@ class Query:
# one step.
pos -= 1
if pos == -1 or fail_on_missing:
- field_names = list(get_field_names_from_opts(opts))
- available = sorted(
- field_names + list(self.annotation_select) +
- list(self._filtered_relations)
- )
+ available = sorted([
+ *get_field_names_from_opts(opts),
+ *self.annotation_select,
+ *self._filtered_relations,
+ ])
raise FieldError("Cannot resolve keyword '%s' into field. "
"Choices are: %s" % (name, ", ".join(available)))
break
@@ -1776,10 +1775,10 @@ class Query:
# from the model on which the lookup failed.
raise
else:
- names = sorted(
- list(get_field_names_from_opts(opts)) + list(self.extra) +
- list(self.annotation_select) + list(self._filtered_relations)
- )
+ names = sorted([
+ *get_field_names_from_opts(opts), *self.extra,
+ *self.annotation_select, *self._filtered_relations
+ ])
raise FieldError("Cannot resolve keyword %r into field. "
"Choices are: %s" % (name, ", ".join(names)))