|
|
@@ -3,13 +3,15 @@
|
3
|
3
|
from django.db.models.query import QuerySet
|
4
|
4
|
|
5
|
5
|
|
6
|
|
-def pagination(queryset, page, num=10):
|
|
6
|
+def pagination(queryset, page, num=10, strict=False):
|
7
|
7
|
"""
|
8
|
|
- DIY Pagination Funciton
|
|
8
|
+ Simple Pagination Funciton
|
9
|
9
|
:param queryset:
|
10
|
10
|
:param page:
|
11
|
|
- :param num: the number of query for one page
|
12
|
|
- :return: the query of the page, the number of query left after the page
|
|
11
|
+ :param num: number per page
|
|
12
|
+ :param strict: strict left number or not
|
|
13
|
+ :return: matched query, left number(default not strict)
|
13
|
14
|
"""
|
14
|
|
- start, end, total = num * (page - 1), num * page, queryset.count() if isinstance(queryset, QuerySet) else len(queryset)
|
15
|
|
- return queryset[start: end], max(total - end, 0)
|
|
15
|
+ start, end = num * (page - 1), num * page
|
|
16
|
+ return queryset[start: end], max(queryset.count() if isinstance(queryset, QuerySet) else len(queryset) - end,
|
|
17
|
+ 0) if strict else len(queryset[end: end + 1])
|