1
0
mirror of https://github.com/django/django.git synced 2025-10-28 16:16:12 +00:00

Fixed #34612 -- Fixed QuerySet.only() crash on reverse relationships.

Regression in b3db6c8dcb.

Thanks Ian Cubitt for the report.

This also corrected test_inheritance_deferred2() test which was
previously properly defined and marked as an expected failure but was
then wrongly adjusted to mask the lack of support for per-alias
deferral that was fixed by #21204.
This commit is contained in:
Simon Charette
2023-05-31 18:04:17 -04:00
committed by Mariusz Felisiak
parent d9e7018796
commit 2cf76f2d5d
4 changed files with 23 additions and 1 deletions

View File

@@ -178,6 +178,16 @@ class DeferRegressionTest(TestCase):
self.assertEqual(i.one_to_one_item.name, "second")
with self.assertNumQueries(1):
self.assertEqual(i.value, 42)
with self.assertNumQueries(1):
i = Item.objects.select_related("one_to_one_item").only(
"name", "one_to_one_item__item"
)[0]
self.assertEqual(i.one_to_one_item.pk, o2o.pk)
self.assertEqual(i.name, "first")
with self.assertNumQueries(1):
self.assertEqual(i.one_to_one_item.name, "second")
with self.assertNumQueries(1):
self.assertEqual(i.value, 42)
def test_defer_with_select_related(self):
item1 = Item.objects.create(name="first", value=47)