def make_paginator(request, qs, num=20, obj_type=None): """ Paginator, returns object_list. """ page_name = 'page' if not obj_type else '{0}_page'.format(obj_type) paginator = Paginator(qs, num) paginator.page_name = page_name page = request.GET.get(page_name) try: return paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. return paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. return paginator.page(paginator.num_pages)