summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
Diffstat (limited to 'django')
-rw-r--r--django/db/models/query.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/django/db/models/query.py b/django/db/models/query.py
index aa2034919c..e33a858a81 100644
--- a/django/db/models/query.py
+++ b/django/db/models/query.py
@@ -281,7 +281,8 @@ class QuerySet(object):
for row in self.query.results_iter():
if fill_cache:
obj, _ = get_cached_row(self.model, row,
- index_start, max_depth, requested=requested)
+ index_start, max_depth,
+ requested=requested, offset=len(aggregate_select))
else:
# omit aggregates in object creation
obj = self.model(*row[index_start:aggregate_start])
@@ -898,7 +899,7 @@ class EmptyQuerySet(QuerySet):
def get_cached_row(klass, row, index_start, max_depth=0, cur_depth=0,
- requested=None):
+ requested=None, offset=0):
"""
Helper function that recursively returns an object with the specified
related attributes already populated.
@@ -915,6 +916,7 @@ def get_cached_row(klass, row, index_start, max_depth=0, cur_depth=0,
obj = None
else:
obj = klass(*fields)
+ index_end += offset
for f in klass._meta.fields:
if not select_related_descend(f, restricted, requested):
continue