Fixed #29230 -- Fixed nested prefetches that clash with descriptors.

This commit is contained in:
Paulo 2018-05-27 13:48:24 +02:00 committed by Tim Graham
parent e0ff88be4f
commit 6104875a2c
2 changed files with 14 additions and 1 deletions

View file

@ -1568,7 +1568,7 @@ def prefetch_related_objects(model_instances, *related_lookups):
# same relationships to stop infinite recursion. So, if we
# are already on an automatically added lookup, don't add
# the new lookups from relationships we've seen already.
if not (lookup in auto_lookups and descriptor in followed_descriptors):
if not (prefetch_to in done_queries and lookup in auto_lookups and descriptor in followed_descriptors):
done_queries[prefetch_to] = obj_list
new_lookups = normalize_prefetch_lookups(reversed(additional_lookups), prefetch_to)
auto_lookups.update(new_lookups)