def test_paginator_page_orphas(self): """paginator.page() returns orphans""" items = range(10) paginator = Paginator(items, 7, orphans=5) page = paginator.page(1) self.assertEqual(page.object_list, items) self.assertIsNone(page.next_page_first_item)
def test_paginator_page_look_ahead(self): """paginator.page() has lookahead""" items = range(10) paginator = Paginator(items, 6, orphans=3) page = paginator.page(1) self.assertEqual(page.object_list, items[:6]) self.assertEqual(page.next_page_first_item, items[6]) page = paginator.page(2) self.assertEqual(page.object_list, items[6:]) self.assertIsNone(page.next_page_first_item)
def redirect_after_deletion(self, request, queryset): paginator = Paginator(queryset, 10, 3) current_page = int(request.resolver_match.kwargs.get('page', 0)) if paginator.num_pages < current_page: namespace = request.resolver_match.namespace url_name = request.resolver_match.url_name kwars = request.resolver_match.kwargs kwars['page'] = paginator.num_pages if kwars['page'] == 1: del kwars['page'] return redirect('%s:%s' % (namespace, url_name), **kwars) else: return redirect(request.path)