### Example usage of SimpleCouchPaginator from myproject.db.couchdb import db from paginatoe import SimpleCouchPaginator, CouchPaginator MIN_INT_DATE = 0 MAX_INT_DATE = 9999999999999 MIN_STRING = u'' MAX_STRING = u"\u9999" def myview1(request): item_type_viewname = 'mydesigndoc/by_user_date_type' pages_item_type_viewname = 'mydesigndoc/pages-by_user_date_type' username = request.user.username pages_view = db.view(pages_item_type_viewname, endkey=[username, MIN_INT_DATE, MIN_STRING], startkey=[username, MAX_INT_DATE, MAX_STRING], descending=True, ) myitems = db.view(item_type_viewname, include_docs=True, endkey=[username, MIN_INT_DATE, MIN_STRING], startkey=[username, MAX_INT_DATE, MAX_STRING], descending=True, ) try: page_number = request.GET.get('page', 1) paginate = CouchPaginator(myitems, count, pages_view=pages_view) page = paginate.page(page_number) items = paginate.object_list except EmptyPage: raise Http404("Page %s empty" % page_number) except PageNotAnInteger: raise Http404("No page '%s'" % page_number) context = { 'items': items, 'paginate': paginate, 'page': page, } return render_to_response("test1.html", context, context_instance=RequestContext(request) ) def myview2(request, count=10): item_type_viewname = 'mydesigndoc/by_user_date_type' username = request.user.username inquiry_items = db.view(item_type_viewname, include_docs=True, endkey=[username, MIN_INT_DATE, MIN_STRING], startkey=[username, MAX_INT_DATE, MAX_STRING], descending=True, ) try: page = request.GET.get('page', 1) paginate = Paginator(count, inquiry_items) paginate.page(page) items = paginate.object_list except EmptyPage: raise Http404("Page %s empty" % page) except PageNotAnInteger: raise Http404("No page '%s'" % page) context = { 'items': items, 'paginate': paginate, } return render_to_response("test2.html", context, context_instance=RequestContext(request) )