diff options
| author | Tom Christie <tom@tomchristie.com> | 2012-10-25 10:31:14 +0100 |
|---|---|---|
| committer | Tom Christie <tom@tomchristie.com> | 2012-10-25 10:31:14 +0100 |
| commit | 502be865c68635d5c31fa3fa58162b48412153ad (patch) | |
| tree | 872184b4f5d584361cc4727aadb459ea0d321c7c | |
| parent | da56e1bac6449daef9aeab8d076d2594d9fd5b44 (diff) | |
Add 'page_kwarg' attribute to `MultipleObjectMixin`, removing hardcoded 'page'.
| -rw-r--r-- | django/views/generic/list.py | 4 | ||||
| -rw-r--r-- | docs/ref/class-based-views/mixins-multiple-object.txt | 11 |
2 files changed, 12 insertions, 3 deletions
diff --git a/django/views/generic/list.py b/django/views/generic/list.py index ec30c58f29..0c383d609a 100644 --- a/django/views/generic/list.py +++ b/django/views/generic/list.py @@ -17,6 +17,7 @@ class MultipleObjectMixin(ContextMixin): paginate_by = None context_object_name = None paginator_class = Paginator + page_kwarg = 'page' def get_queryset(self): """ @@ -39,7 +40,8 @@ class MultipleObjectMixin(ContextMixin): 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: diff --git a/docs/ref/class-based-views/mixins-multiple-object.txt b/docs/ref/class-based-views/mixins-multiple-object.txt index cdb743fcbd..e6abf26e6a 100644 --- a/docs/ref/class-based-views/mixins-multiple-object.txt +++ b/docs/ref/class-based-views/mixins-multiple-object.txt @@ -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 |
