1
0
mirror of https://github.com/django/django.git synced 2025-10-24 22:26:08 +00:00

Optimised use of 'in' operator on QuerySet using an explicit __contains__ method.

Without this change, use of 'in' on a QuerySet resulted in ._result_cache
being fully populated, which sometimes is unnecessary work.



git-svn-id: http://code.djangoproject.com/svn/django/trunk@11803 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Luke Plant
2009-12-09 16:07:21 +00:00
parent bb428f3e86
commit eeb10d5f2c
2 changed files with 38 additions and 0 deletions

View File

@@ -211,6 +211,14 @@ True
>>> Article.objects.get(id__exact=8) == Article.objects.get(id__exact=7)
False
# You can use 'in' to test for membership...
>>> a8 in Article.objects.all()
True
# ... but there will often be more efficient ways if that is all you need:
>>> Article.objects.filter(id=a8.id).exists()
True
# dates() returns a list of available dates of the given scope for the given field.
>>> Article.objects.dates('pub_date', 'year')
[datetime.datetime(2005, 1, 1, 0, 0)]