Skip to content

Commit

Permalink
Add 'page_kwarg' attribute to MultipleObjectMixin, removing hardcod…
Browse files Browse the repository at this point in the history
…ed 'page'.
  • Loading branch information
tomchristie committed Oct 25, 2012
1 parent da56e1b commit 502be86
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 3 deletions.
4 changes: 3 additions & 1 deletion django/views/generic/list.py
Expand Up @@ -17,6 +17,7 @@ class MultipleObjectMixin(ContextMixin):
paginate_by = None
context_object_name = None
paginator_class = Paginator
page_kwarg = 'page'

def get_queryset(self):
"""
Expand All @@ -39,7 +40,8 @@ def paginate_queryset(self, queryset, page_size):
Paginate the queryset, if needed.
"""
paginator = self.get_paginator(queryset, page_size, allow_empty_first_page=self.get_allow_empty())
page = self.kwargs.get('page') or self.request.GET.get('page') or 1
page_kwarg = self.page_kwarg
page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1
try:
page_number = int(page)
except ValueError:
Expand Down
11 changes: 9 additions & 2 deletions docs/ref/class-based-views/mixins-multiple-object.txt
Expand Up @@ -69,8 +69,15 @@ MultipleObjectMixin
An integer specifying how many objects should be displayed per page. If
this is given, the view will paginate objects with
:attr:`MultipleObjectMixin.paginate_by` objects per page. The view will
expect either a ``page`` query string parameter (via ``GET``) or a
``page`` variable specified in the URLconf.
expect either a ``page`` query string parameter (via ``request.GET``)
or a ``page`` variable specified in the URLconf.

.. attribute:: page_kwarg

A string specifying the name to use for the page parameter.
The view will expect this prameter to be available either as a query
string parameter (via ``request.GET``) or as a kwarg variable specified
in the URLconf. Defaults to ``"page"``.

.. attribute:: paginator_class

Expand Down

0 comments on commit 502be86

Please sign in to comment.