summaryrefslogtreecommitdiff
path: root/tests/filtered_relation
diff options
context:
space:
mode:
authorviliam mihalik <viliam.mihalik@smartbase.sk>2025-06-05 23:53:01 +0200
committerSarah Boyce <42296566+sarahboyce@users.noreply.github.com>2025-06-12 08:36:54 +0200
commitbd65e82831304ede92af6e9f0807daa3a874efc0 (patch)
treeb99772eb02ba33449247a97d7d22a1f92b2f74e4 /tests/filtered_relation
parent95a5c9b794fe2ad83344c7ac3ca6e940eb7e0949 (diff)
Fixed #36442 -- Cloned FilteredRelation before rename_prefix_from_q.
Diffstat (limited to 'tests/filtered_relation')
-rw-r--r--tests/filtered_relation/tests.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/filtered_relation/tests.py b/tests/filtered_relation/tests.py
index a9c6e00567..cdcd5c19af 100644
--- a/tests/filtered_relation/tests.py
+++ b/tests/filtered_relation/tests.py
@@ -604,6 +604,28 @@ class FilteredRelationTests(TestCase):
qs.filter(my_readers=borrower).values_list("name", flat=True), ["Alice"]
)
+ def test_reuse_same_filtered_relation(self):
+ borrower = Borrower.objects.create(name="Jenny")
+ Reservation.objects.create(
+ borrower=borrower,
+ book=self.book1,
+ state=Reservation.STOPPED,
+ )
+ condition = Q(book__reservation__state=Reservation.STOPPED)
+ my_reserved_books = FilteredRelation("book__reservation", condition=condition)
+ first_query = list(
+ Author.objects.annotate(
+ my_reserved_books=my_reserved_books,
+ )
+ )
+ self.assertEqual(my_reserved_books.condition, condition)
+ second_query = list(
+ Author.objects.annotate(
+ my_reserved_books=my_reserved_books,
+ )
+ )
+ self.assertEqual(first_query, second_query)
+
def test_deep_nested_foreign_key(self):
qs = (
Book.objects.annotate(