From cd0ba8053dfdc81ade9a656dc8049de600638501 Mon Sep 17 00:00:00 2001 From: Anssi Kääriäinen Date: Tue, 27 Oct 2015 13:13:16 +0200 Subject: Fixed #12885 -- Fixed queries with GenericRelations to multi-table inheritance child models. --- tests/generic_relations/tests.py | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'tests') diff --git a/tests/generic_relations/tests.py b/tests/generic_relations/tests.py index 3d3e2acfe5..1d3d3d373b 100644 --- a/tests/generic_relations/tests.py +++ b/tests/generic_relations/tests.py @@ -405,6 +405,13 @@ class GenericRelationsTests(TestCase): # GenericRelations to models that use multi-table inheritance work. granite = ValuableRock.objects.create(name='granite', hardness=5) ValuableTaggedItem.objects.create(content_object=granite, tag="countertop", value=1) + self.assertEqual(ValuableRock.objects.filter(tags__value=1).count(), 1) + # We're generating a slightly inefficient query for tags__tag - we + # first join ValuableRock -> TaggedItem -> ValuableTaggedItem, and then + # we fetch tag by joining TaggedItem from ValuableTaggedItem. The last + # join isn't necessary, as TaggedItem <-> ValuableTaggedItem is a + # one-to-one join. + self.assertEqual(ValuableRock.objects.filter(tags__tag="countertop").count(), 1) granite.delete() # deleting the rock should delete the related tag. self.assertEqual(ValuableTaggedItem.objects.count(), 0) -- cgit v1.3