diff options
| author | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2019-12-23 12:17:56 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-12-23 12:17:56 +0100 |
| commit | 45bcc6feac68165eb3642d3c308c74b4828e679e (patch) | |
| tree | dfe350a5a720c32fbfd86e7512666727ef567d13 | |
| parent | 67ea35df52f2e29bafca8881e4f356934061644e (diff) | |
Refs #31115 -- Added test for nested subquery that references related fields.
Thanks Dmitriy Gunchenko for the report and Simon Charette for the
analysis and tests.
Regression in 5a4d7285bd10bd40d9f7e574a7c421eb21094858.
Fixed in 5a4d7285bd10bd40d9f7e574a7c421eb21094858.
| -rw-r--r-- | tests/expressions/tests.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/expressions/tests.py b/tests/expressions/tests.py index ee8b246966..1e6d4c967c 100644 --- a/tests/expressions/tests.py +++ b/tests/expressions/tests.py @@ -538,6 +538,21 @@ class BasicExpressionsTests(TestCase): ) self.assertCountEqual(contrived.values_list(), outer.values_list()) + def test_nested_subquery_join_outer_ref(self): + inner = Employee.objects.filter(pk=OuterRef('ceo__pk')).values('pk') + qs = Employee.objects.annotate( + ceo_company=Subquery( + Company.objects.filter( + ceo__in=inner, + ceo__pk=OuterRef('pk'), + ).values('pk'), + ), + ) + self.assertSequenceEqual( + qs.values_list('ceo_company', flat=True), + [self.example_inc.pk, self.foobar_ltd.pk, self.gmbh.pk], + ) + def test_nested_subquery_outer_ref_2(self): first = Time.objects.create(time='09:00') second = Time.objects.create(time='17:00') |
