No Description

page_utils.py 590B

123456789101112131415161718
  1. # -*- coding: utf-8 -*-
  2. from django.db.models.query import QuerySet
  3. def pagination(queryset, page, num=10, strict=False):
  4. """
  5. Simple Pagination Funciton
  6. :param queryset:
  7. :param page:
  8. :param num: number per page
  9. :param strict: strict left number or not
  10. :return: matched query, left number(default not strict)
  11. """
  12. start, end = num * (page - 1), num * page
  13. return queryset[start: end], max(queryset.count() if isinstance(queryset, QuerySet) else len(queryset) - end,
  14. 0) if strict else len(queryset[end: end + 1])