Paginate the queryset, if needed.
(self, queryset, page_size)
| 51 | return self.ordering |
| 52 | |
| 53 | def paginate_queryset(self, queryset, page_size): |
| 54 | """Paginate the queryset, if needed.""" |
| 55 | paginator = self.get_paginator( |
| 56 | queryset, |
| 57 | page_size, |
| 58 | orphans=self.get_paginate_orphans(), |
| 59 | allow_empty_first_page=self.get_allow_empty(), |
| 60 | ) |
| 61 | page_kwarg = self.page_kwarg |
| 62 | page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1 |
| 63 | try: |
| 64 | page_number = int(page) |
| 65 | except ValueError: |
| 66 | if page == "last": |
| 67 | page_number = paginator.num_pages |
| 68 | else: |
| 69 | raise Http404( |
| 70 | _("Page is not “last”, nor can it be converted to an int.") |
| 71 | ) |
| 72 | try: |
| 73 | page = paginator.page(page_number) |
| 74 | return (paginator, page, page.object_list, page.has_other_pages()) |
| 75 | except InvalidPage as e: |
| 76 | raise Http404( |
| 77 | _("Invalid page (%(page_number)s): %(message)s") |
| 78 | % {"page_number": page_number, "message": str(e)} |
| 79 | ) |
| 80 | |
| 81 | def get_paginate_by(self, queryset): |
| 82 | """ |
no test coverage detected