You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

28 lines
762 B

from django.core.paginator import Paginator, InvalidPage
DEFAULT_PER_PAGE = 10
DEFAULT_ORPHANS = 5
DEFAULT_PAGE_VAR = 'page'
def pagination(request, object_list):
paginator = Paginator(object_list, DEFAULT_PER_PAGE, DEFAULT_ORPHANS)
try:
page_number = int(request.GET.get(DEFAULT_PAGE_VAR) or 1)
page_obj = paginator.page(page_number)
except (ValueError, InvalidPage) as e:
page_obj = paginator.page(page_number) # show first page on error
request_GET = request.GET.copy()
if DEFAULT_PAGE_VAR in request_GET:
del request_GET[DEFAULT_PAGE_VAR]
if len(request_GET.keys()) > 0:
getvars = '&%s' % request_GET.urlencode()
else:
getvars = ''
return paginator, page_obj, getvars