1
0
mirror of https://github.com/django/django.git synced 2025-10-27 07:36:08 +00:00

[1.6.x] Fixed #21787 -- regression in MTI .exclude() queries

Backpatch of 78a2617703 from master.
This commit is contained in:
Anssi Kääriäinen
2014-01-20 18:28:16 +02:00
parent c91e772b3a
commit e47b90e48f
2 changed files with 24 additions and 2 deletions

View File

@@ -3008,3 +3008,21 @@ class Ticket21203Tests(TestCase):
qs = Ticket21203Child.objects.select_related('parent').defer('parent__created')
self.assertQuerysetEqual(qs, [c], lambda x: x)
self.assertIs(qs[0].parent.parent_bool, True)
class ForeignKeyToBaseExcludeTests(TestCase):
def test_ticket_21787(self):
sc1 = SpecialCategory.objects.create(special_name='sc1', name='sc1')
sc2 = SpecialCategory.objects.create(special_name='sc2', name='sc2')
sc3 = SpecialCategory.objects.create(special_name='sc3', name='sc3')
c1 = CategoryItem.objects.create(category=sc1)
CategoryItem.objects.create(category=sc2)
self.assertQuerysetEqual(
SpecialCategory.objects.exclude(
categoryitem__id=c1.pk).order_by('name'),
[sc2, sc3], lambda x: x
)
self.assertQuerysetEqual(
SpecialCategory.objects.filter(categoryitem__id=c1.pk),
[sc1], lambda x: x
)