diff options
| author | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-10-06 20:18:41 +0200 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-10-06 20:19:59 +0200 |
| commit | 9f8bf7aebe1d389aa06f41bcaccf5c4418c71026 (patch) | |
| tree | 09f0d57de31a908c645e9da16210f6eea8a8c037 /django | |
| parent | d5b093a2c5d968dc11447bc9b84848788f297737 (diff) | |
[5.0.x] Fixed #34889 -- Fixed get_prefetch_queryset() fallback in prefetch_one_level().
Thanks Matt Westcott for the report.
Regression in cac94dd8aa2fb49cd2e06b5b37cf039257284bb0.
Backport of 296b75a3c0309a936a6c07d8f711f722e3b96e63 from main
Diffstat (limited to 'django')
| -rw-r--r-- | django/db/models/query.py | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/django/db/models/query.py b/django/db/models/query.py index 1125302933..de00bba8d7 100644 --- a/django/db/models/query.py +++ b/django/db/models/query.py @@ -2550,6 +2550,9 @@ def prefetch_one_level(instances, prefetcher, lookup, level): RemovedInDjango60Warning, stacklevel=2, ) + queryset = None + if querysets := lookup.get_current_querysets(level): + queryset = querysets[0] ( rel_qs, rel_obj_attr, @@ -2557,9 +2560,7 @@ def prefetch_one_level(instances, prefetcher, lookup, level): single, cache_name, is_descriptor, - ) = prefetcher.get_prefetch_queryset( - instances, lookup.get_current_querysets(level) - ) + ) = prefetcher.get_prefetch_queryset(instances, queryset) # We have to handle the possibility that the QuerySet we just got back # contains some prefetch_related lookups. We don't want to trigger the # prefetch_related functionality by evaluating the query. Rather, we need |
