mirror of
https://github.com/django/django.git
synced 2025-08-03 18:38:50 +00:00
Fixed #28032 -- Added Paginator.get_page().
Moved boilerplate from docs to a method.
This commit is contained in:
parent
5b1c389603
commit
407c1249c9
4 changed files with 66 additions and 9 deletions
|
@ -290,6 +290,12 @@ Models
|
|||
* Added support for expressions in :attr:`Meta.ordering
|
||||
<django.db.models.Options.ordering>`.
|
||||
|
||||
Pagination
|
||||
~~~~~~~~~~
|
||||
|
||||
* Added :meth:`Paginator.get_page() <django.core.paginator.Paginator.get_page>`
|
||||
to provide the documented pattern of handling invalid page numbers.
|
||||
|
||||
Requests and Responses
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
|
|
@ -93,15 +93,7 @@ The view function looks like this::
|
|||
paginator = Paginator(contact_list, 25) # Show 25 contacts per page
|
||||
|
||||
page = request.GET.get('page')
|
||||
try:
|
||||
contacts = paginator.page(page)
|
||||
except PageNotAnInteger:
|
||||
# If page is not an integer, deliver first page.
|
||||
contacts = paginator.page(1)
|
||||
except EmptyPage:
|
||||
# If page is out of range (e.g. 9999), deliver last page of results.
|
||||
contacts = paginator.page(paginator.num_pages)
|
||||
|
||||
contacts = paginator.get_page(page)
|
||||
return render(request, 'list.html', {'contacts': contacts})
|
||||
|
||||
In the template :file:`list.html`, you'll want to include navigation between
|
||||
|
@ -177,6 +169,20 @@ Optional arguments
|
|||
Methods
|
||||
-------
|
||||
|
||||
.. method:: Paginator.get_page(number)
|
||||
|
||||
.. versionadded:: 2.0
|
||||
|
||||
Returns a :class:`Page` object with the given 1-based index, while also
|
||||
handling out of range and invalid page numbers.
|
||||
|
||||
If the page isn't a number, it returns the first page. If the page number
|
||||
is negative or greater than the number of pages, it returns the last page.
|
||||
|
||||
It raises an exception (:exc:`EmptyPage`) only if you specify
|
||||
``Paginator(..., allow_empty_first_page=False)`` and the ``object_list`` is
|
||||
empty.
|
||||
|
||||
.. method:: Paginator.page(number)
|
||||
|
||||
Returns a :class:`Page` object with the given 1-based index. Raises
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue