Commit fc2a02f9 authored by Adrian Holovaty's avatar Adrian Holovaty
Browse files

Fixed #2075 -- Added 'page' parameter to object_list generic view. Thanks, kanashii@kanashii.ca

git-svn-id: http://code.djangoproject.com/svn/django/trunk@3071 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent 9b86db9b
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -4,8 +4,8 @@ from django.core.xheaders import populate_xheaders
from django.core.paginator import ObjectPaginator, InvalidPage
from django.core.exceptions import ObjectDoesNotExist

def object_list(request, queryset, paginate_by=None, allow_empty=False,
        template_name=None, template_loader=loader,
def object_list(request, queryset, paginate_by=None, page=None,
        allow_empty=False, template_name=None, template_loader=loader,
        extra_context=None, context_processors=None, template_object_name='object',
        mimetype=None):
    """
@@ -38,6 +38,7 @@ def object_list(request, queryset, paginate_by=None, allow_empty=False,
    queryset = queryset._clone()
    if paginate_by:
        paginator = ObjectPaginator(queryset, paginate_by)
        if not page:
            page = request.GET.get('page', 1)
        try:
            page = int(page)
+23 −2
Original line number Diff line number Diff line
@@ -641,8 +641,10 @@ A page representing a list of objects.

    * ``paginate_by``: An integer specifying how many objects should be
      displayed per page. If this is given, the view will paginate objects with
      ``paginate_by`` objects per page. The view will expect a ``page`` query
      string (GET) parameter containing a zero-indexed page number.
      ``paginate_by`` objects per page. The view will expect either a ``page``
      query string parameter (via ``GET``) containing a zero-indexed page
      number, or a ``page`` variable specified in the URLconf. See
      "Notes on pagination" below.

    * ``template_name``: The full name of a template to use in rendering the
      page. This lets you override the default template name (see below).
@@ -711,6 +713,25 @@ If the results are paginated, the context will contain these extra variables:
    * ``hits``: The total number of objects across *all* pages, not just this
      page.

Notes on pagination
~~~~~~~~~~~~~~~~~~~

If ``paginate_by`` is specified, Django will paginate the results. You can
specify the page number in the URL in one of two ways:

    * Use the ``page`` parameter in the URLconf. For example, this is what
      your URLconf might look like::

        (r'^objects/page(?P<page>[0-9]+)/$', 'object_list', dict(info_dict))

    * Pass the page number via the ``page`` query-string parameter. For
      example, a URL would look like this:

        /objects/?page=3

In both cases, ``page`` is 1-based, not 0-based, so the first page would be
represented as page ``1``.

``django.views.generic.list_detail.object_detail``
--------------------------------------------------