summaryrefslogtreecommitdiff
path: root/tests/prefetch_related/tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/prefetch_related/tests.py')
-rw-r--r--tests/prefetch_related/tests.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/prefetch_related/tests.py b/tests/prefetch_related/tests.py
index c8b9a9538b..4566de631e 100644
--- a/tests/prefetch_related/tests.py
+++ b/tests/prefetch_related/tests.py
@@ -978,6 +978,31 @@ class CustomPrefetchTests(TestCase):
with self.assertNumQueries(5):
self.traverse_qs(list(houses), [["occupants", "houses", "main_room"]])
+ def test_nested_prefetch_related_with_duplicate_prefetch_and_depth(self):
+ people = Person.objects.prefetch_related(
+ Prefetch(
+ "houses__main_room",
+ queryset=Room.objects.filter(name="Dining room"),
+ to_attr="dining_room",
+ ),
+ "houses__main_room",
+ )
+ with self.assertNumQueries(4):
+ main_room = people[0].houses.all()[0]
+
+ people = Person.objects.prefetch_related(
+ "houses__main_room",
+ Prefetch(
+ "houses__main_room",
+ queryset=Room.objects.filter(name="Dining room"),
+ to_attr="dining_room",
+ ),
+ )
+ with self.assertNumQueries(4):
+ main_room = people[0].houses.all()[0]
+
+ self.assertEqual(main_room.main_room, self.room1_1)
+
def test_values_queryset(self):
msg = "Prefetch querysets cannot use raw(), values(), and values_list()."
with self.assertRaisesMessage(ValueError, msg):