def paginate(request, qs, url=None): try: limit = int(request.GET.get('limit', 5)) except ValueError: limit = 5 if limit > 100: limit = 5 try: page = int(request.GET.get('page', 1)) except ValueError: raise Http404 paginator = Paginator(qs, limit) try: page = paginator.page(page) except EmptyPage: page = paginator.page(paginator.num_pages) if url == 'hot': paginator.baseurl = '/hot/?page=' elif url == 'new': paginator.baseurl = '/new/?page=' else: paginator.baseurl = '/?page=' paginator.startdiv = page.number - 2 paginator.enddiv = page.number + 2 return page