diff options
Diffstat (limited to 'django')
| -rw-r--r-- | django/db/models/query.py | 6 |
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 |
