diff options
| author | Sergey Fedoseev <fedoseev.sergey@gmail.com> | 2018-09-28 18:57:12 +0500 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2018-09-28 09:57:12 -0400 |
| commit | 8ef8bc0f64c463684268a7c55f3d3da4de066c0d (patch) | |
| tree | 9c3ab782c6382bdbc91363d0dd5513df83381903 /django/db/models/sql/query.py | |
| parent | 4fc8fb7ddaad495d45d53df58b2d13115857b3c7 (diff) | |
Refs #28909 -- Simplifed code using unpacking generalizations.
Diffstat (limited to 'django/db/models/sql/query.py')
| -rw-r--r-- | django/db/models/sql/query.py | 23 |
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))) |
