PaginatorSet


from django.core.paginator import Paginator, EmptyPage

class PaginatorSet:

    def __init__(self, limit=30):
        self._limit = limit

    def get(self, request, query_set):

        try:
            limit = int(request.GET.get('limit', self._limit))
            offset = int(request.GET.get('offset', 1))
        except ValueError:
            limit = self._limit
            offset = 1

        query_set_pages = Paginator(query_set, limit, allow_empty_first_page=True)

        try:
            current_page = query_set_pages.page(offset)
        except EmptyPage:
            current_page = query_set_pages.page(query_set_pages.num_pages)

        return {
            'current_page': current_page,
            'num_pages': query_set_pages.num_pages
        }
posted @ 2018-01-23 16:22  水银_aquarius  阅读(110)  评论(0编辑  收藏  举报