mirror of
https://github.com/django/django.git
synced 2025-10-31 09:41:08 +00:00
queryset-refactor: Implemented a way to differentiate between filtering on a
single instance and filtering on multiple instances when spanning a multi-valued relationship. git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7317 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
@@ -210,11 +210,24 @@ True
|
||||
|
||||
>>> Item.objects.filter(Q(tags=t1)).order_by('name')
|
||||
[<Item: one>, <Item: two>]
|
||||
>>> Item.objects.filter(Q(tags=t1) & Q(tags=t2))
|
||||
[<Item: one>]
|
||||
>>> Item.objects.filter(Q(tags=t1)).filter(Q(tags=t2))
|
||||
[<Item: one>]
|
||||
|
||||
Each filter call is processed "at once" against a single table, so this is
|
||||
different from the previous example as it tries to find tags that are two
|
||||
things at once (rather than two tags).
|
||||
>>> Item.objects.filter(Q(tags=t1) & Q(tags=t2))
|
||||
[]
|
||||
|
||||
>>> qs = Author.objects.filter(ranking__rank=2, ranking__id=rank1.id)
|
||||
>>> list(qs)
|
||||
[<Author: a2>]
|
||||
>>> qs.query.count_active_tables()
|
||||
2
|
||||
>>> qs = Author.objects.filter(ranking__rank=2).filter(ranking__id=rank1.id)
|
||||
>>> qs.query.count_active_tables()
|
||||
3
|
||||
|
||||
Bug #4464
|
||||
>>> Item.objects.filter(tags=t1).filter(tags=t2)
|
||||
[<Item: one>]
|
||||
|
||||
Reference in New Issue
Block a user