diff options
author | Aymeric Augustin <aymeric.augustin@m4x.org> | 2014-05-10 16:39:20 +0200 |
---|---|---|
committer | Aymeric Augustin <aymeric.augustin@m4x.org> | 2014-05-10 16:39:20 +0200 |
commit | f574220f0988f3aa1aca4f133887fbde0e5a6f10 (patch) | |
tree | 46152334102210137b0c158f57d7a0308ba7d808 /tests/select_related_regress | |
parent | fb90b7cda2f57c6b58778476d654473854317361 (diff) | |
download | django-f574220f0988f3aa1aca4f133887fbde0e5a6f10.tar.gz |
Fixed #22508 -- Avoided overwriting select_related.
Previously, known related objects overwrote related objects loaded
though select_related. This could cancel the effect of select_related
when it was used over more than one level.
Thanks boxm for the bug report and timo for bisecting the regression.
Diffstat (limited to 'tests/select_related_regress')
-rw-r--r-- | tests/select_related_regress/tests.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/tests/select_related_regress/tests.py b/tests/select_related_regress/tests.py index 78d5838109..6b064ca582 100644 --- a/tests/select_related_regress/tests.py +++ b/tests/select_related_regress/tests.py @@ -188,3 +188,13 @@ class SelectRelatedRegressTests(TestCase): self.assertEqual(qs_c.c_b.lots_of_text, 'lots_of_text_b') self.assertEqual(qs_c.c_a.name, 'a') self.assertEqual(qs_c.c_b.name, 'b') + + def test_regression_22508(self): + building = Building.objects.create(name='101') + device = Device.objects.create(name="router", building=building) + Port.objects.create(port_number='1', device=device) + + device = Device.objects.get() + port = device.port_set.select_related('device__building').get() + with self.assertNumQueries(0): + port.device.building |