From e07a457c0054fa20dcbbf5bf41bc07191bdaa895 Mon Sep 17 00:00:00 2001 From: Malcolm Tredinnick Date: Mon, 28 Apr 2008 04:29:06 +0000 Subject: Fixed #7096 -- The simplifications in [7461] weren't complete. They broke multi-component exclude() calls. Fixed that. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7493 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- tests/regressiontests/queries/models.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'tests') diff --git a/tests/regressiontests/queries/models.py b/tests/regressiontests/queries/models.py index 5529bced8b..e108c46352 100644 --- a/tests/regressiontests/queries/models.py +++ b/tests/regressiontests/queries/models.py @@ -658,5 +658,24 @@ Bug #7098 -- Make sure semi-deprecated ordering by related models syntax still works. >>> Item.objects.values('note__note').order_by('queries_note.note', 'id') [{'note__note': u'n2'}, {'note__note': u'n3'}, {'note__note': u'n3'}, {'note__note': u'n3'}] + +Bug #7096 -- Make sure exclude() with multiple conditions continues to work. +>>> Tag.objects.filter(parent=t1, name='t3').order_by('name') +[] +>>> Tag.objects.exclude(parent=t1, name='t3').order_by('name') +[, , , ] +>>> Item.objects.exclude(tags__name='t1', name='one').order_by('name').distinct() +[, , ] +>>> Item.objects.filter(name__in=['three', 'four']).exclude(tags__name='t1').order_by('name') +[, ] + +More twisted cases, involving nested negations. +>>> Item.objects.exclude(~Q(tags__name='t1', name='one')) +[] +>>> Item.objects.filter(~Q(tags__name='t1', name='one'), name='two') +[] +>>> Item.objects.exclude(~Q(tags__name='t1', name='one'), name='two') +[, , ] + """} -- cgit v1.3