Skip to content

Instantly share code, notes, and snippets.

@mengzhuo
Created January 2, 2013 01:22
Show Gist options
  • Save mengzhuo/4431482 to your computer and use it in GitHub Desktop.
Save mengzhuo/4431482 to your computer and use it in GitHub Desktop.
My paginator
from django.core.paginator import Paginator, InvalidPage, EmptyPage, PageNotAnInteger
def do_paginator( origin_list, page, max_item_per_page=MAX_ITEM_PER_PAGE):
"""
A paginator like doc says, but using default setting
in the views.py, I'd like to put it this way
do_paginator(list, request.GET.get('page'))
"""
try:
max_item_per_page = int(max_item_per_page)
except:
max_item_per_page = getattr(settings, 'MAX_ITEM_PER_PAGE', 10)
paginator = Paginator( origin_list, max_item_per_page )
try:
origin_list = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
origin_list = paginator.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
origin_list = paginator.page(paginator.num_pages)
return origin_list
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment