Skip to content

Instantly share code, notes, and snippets.

@johnboxall
Created July 13, 2009 05:26
Show Gist options
  • Save johnboxall/145950 to your computer and use it in GitHub Desktop.
Save johnboxall/145950 to your computer and use it in GitHub Desktop.
from django.core.paginator import Paginator as DefaultPaginator
class Paginator(DefaultPaginator):
def __init__(self, object_list, per_page, orphans=0,
allow_empty_first_page=True, request=None, page_var="page"):
assert request is not None, "request must be supplied."
super(Paginator, self).__init__(object_list, per_page, orphans,
allow_empty_first_page)
self.query = request.GET.copy()
self.page_var = page_var
def _get_pages(self):
"""Returns page_num, query."""
for page_num in range(1, self.num_pages + 1):
self.query[self.page_var] = page_num
yield page_num, self.query.urlencode()
pages = property(_get_pages)
def get_paginator(request, qs, paginate_by=25, page_var="page"):
paginator = Paginator(qs, paginate_by, request=request)
page_obj = paginator.page(request.GET.get(page_var, 1))
return paginator, page_obj
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment