diff options
| author | Simon Charette <charette.s@gmail.com> | 2025-07-24 15:18:47 -0400 |
|---|---|---|
| committer | Natalia <124304+nessita@users.noreply.github.com> | 2025-07-28 16:40:08 -0300 |
| commit | 3031c512f0cf030dc8f99128bcb4fb9d4d6e285a (patch) | |
| tree | 8692964a018a71f0346737866f43e854075b63dd /tests | |
| parent | 28f33f50b2edb6a40bb2696af0eed2b9d76494cd (diff) | |
[5.2.x] Fixed #36522 -- Added support for filtering composite pks using a tuple of expressions.
Thanks Jacob Walls for the report, and Sarah Boyce and Mariusz Felisiak
for reviews.
Backport of 0a4999b422702c64e21f5a10a4d60300b7074401 from main.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/composite_pk/test_filter.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/tests/composite_pk/test_filter.py b/tests/composite_pk/test_filter.py index 03037d4d82..ed6caf8034 100644 --- a/tests/composite_pk/test_filter.py +++ b/tests/composite_pk/test_filter.py @@ -9,6 +9,7 @@ from django.db.models import ( Q, Subquery, TextField, + Value, When, ) from django.db.models.functions import Cast @@ -549,6 +550,13 @@ class CompositePKFilterTests(TestCase): [self.tenant_1], ) + def test_filter_by_tuple_containing_expression(self): + pk_lookup = (self.comment_1.tenant.id, (Value(self.comment_1.id) + 1) - 1) + for lookup in ({"pk": pk_lookup}, {"pk__in": [pk_lookup]}): + with self.subTest(lookup=lookup): + qs = Comment.objects.filter(**lookup) + self.assertEqual(qs.get(), self.comment_1) + @skipUnlessDBFeature("supports_tuple_lookups") class CompositePKFilterTupleLookupFallbackTests(CompositePKFilterTests): |
