1
0
mirror of https://github.com/django/django.git synced 2025-07-06 18:59:13 +00:00

queryset-refactor: Added a convenience all() method to Querysets. Refs #3739

git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@6600 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Malcolm Tredinnick 2007-10-23 13:49:07 +00:00
parent 3940277792
commit abcb70e524
3 changed files with 23 additions and 0 deletions

View File

@ -246,6 +246,13 @@ class _QuerySet(object):
# PUBLIC METHODS THAT ALTER ATTRIBUTES AND RETURN A NEW QUERYSET # # PUBLIC METHODS THAT ALTER ATTRIBUTES AND RETURN A NEW QUERYSET #
################################################################## ##################################################################
def all(self):
"""
Returns a new QuerySet that is a copy of the current one. This allows a
QuerySet to proxy for a model manager in some cases.
"""
return self._clone()
def filter(self, *args, **kwargs): def filter(self, *args, **kwargs):
""" """
Returns a new QuerySet instance with the args ANDed to the existing Returns a new QuerySet instance with the args ANDed to the existing

View File

@ -681,6 +681,17 @@ Examples::
>>> Entry.objects.none() >>> Entry.objects.none()
[] []
``all()``
~~~~~~~~~~
**New in Django development version**
Returns a ''copy'' of the current ``QuerySet`` (or ``QuerySet`` subclass you
pass in). This can be useful in some situations where you might want to pass
in either a model manager or a ``QuerySet`` and do further filtering on the
result. You can safely call ``all()`` on either object and then you'll
definitely have a ``QuerySet`` to work with.
``select_related()`` ``select_related()``
~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~

View File

@ -374,5 +374,10 @@ upper bound.
>>> X.objects.select_related() >>> X.objects.select_related()
[] []
Bug #3739
The all() method on querysets returns a copy of the queryset.
>>> q1 = Item.objects.order_by('name')
>>> id(q1) == id(q1.all())
False
"""} """}