diff options
| author | Alexander Holmbäck <alexande.holmback@creuna.se> | 2018-09-06 20:10:20 +0000 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2018-09-08 09:40:33 -0400 |
| commit | f315d0423a09dfe20dd4d4f6a0eb11fc8e45a665 (patch) | |
| tree | a9aba4c1f452986f91c7c01e15fc30ac81e60387 /django/db/models/sql/query.py | |
| parent | aa16ec54747eaa9da7534e67a1de320b9a517c1c (diff) | |
Fixed #29727 -- Made nonexistent joins in F() raise FieldError.
Regression in 2162f0983de0dfe2178531638ce7ea56f54dd4e7.
Diffstat (limited to 'django/db/models/sql/query.py')
| -rw-r--r-- | django/db/models/sql/query.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py index 74eec72291..81f6f196d3 100644 --- a/django/db/models/sql/query.py +++ b/django/db/models/sql/query.py @@ -1594,10 +1594,13 @@ class Query: else: field_list = name.split(LOOKUP_SEP) join_info = self.setup_joins(field_list, self.get_meta(), self.get_initial_alias(), can_reuse=reuse) - targets, _, join_list = self.trim_joins(join_info.targets, join_info.joins, join_info.path) + targets, final_alias, join_list = self.trim_joins(join_info.targets, join_info.joins, join_info.path) if len(targets) > 1: raise FieldError("Referencing multicolumn fields with F() objects " "isn't supported") + # Verify that the last lookup in name is a field or a transform: + # transform_function() raises FieldError if not. + join_info.transform_function(targets[0], final_alias) if reuse is not None: reuse.update(join_list) col = _get_col(targets[0], join_info.targets[0], join_list[-1], simple_col) |
