summaryrefslogtreecommitdiff
path: root/django/db/models/sql
diff options
context:
space:
mode:
Diffstat (limited to 'django/db/models/sql')
-rw-r--r--django/db/models/sql/query.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py
index eda37d15f0..97c0bb4a08 100644
--- a/django/db/models/sql/query.py
+++ b/django/db/models/sql/query.py
@@ -766,7 +766,13 @@ class Query(BaseExpression):
# Only include fields mentioned in the mask.
for field_name, field_mask in mask.items():
field = opts.get_field(field_name)
- field_select_mask = select_mask.setdefault(field, {})
+ # Retrieve the actual field associated with reverse relationships
+ # as that's what is expected in the select mask.
+ if field in opts.related_objects:
+ field_key = field.field
+ else:
+ field_key = field
+ field_select_mask = select_mask.setdefault(field_key, {})
if field_mask:
if not field.is_relation:
raise FieldError(next(iter(field_mask)))