使用Django内建的paginator分页类别
将原本的Quryset物件(doc_warehouse.objects.all().order_by("id"))丢进Paginator内
他会用你给的limit去切资料
然後将每一页都指定给Doc_warehouse保持我们原本的templates内的逻辑可以保持不变
doc_info/views.py
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
def doc_main(request):
doc_all = doc_warehouse.objects.all().order_by("id")
limit = 20
page = request.GET.get('page', 1)
paginator = Paginator(doc_all, limit)
try:
Doc_warehouse = paginator.page(page)
except PageNotAnInteger:
Doc_warehouse = paginator.page(1)
except EmptyPage:
Doc_warehouse = paginator.page(paginator.num_pages)
context = {
'Doc_warehouse': Doc_warehouse,
}
return render(request, 'doc/main.html', context)
@login_required()
def doc_user_list(request):
user = request.user
doc_filter = doc_warehouse.objects.filter(user_id=user.id).order_by("id")
limit = 5
page = request.GET.get('page', 1)
paginator = Paginator(doc_filter, limit)
try:
Doc_warehouse = paginator.page(page)
except PageNotAnInteger:
Doc_warehouse = paginator.page(1)
except EmptyPage:
Doc_warehouse = paginator.page(paginator.num_pages)
context = {
'Doc_warehouse': Doc_warehouse,
}
return render(request, 'doc/user_list.html', context)
templates的最下面增加以下
templates/main.html & templates/user_list.html
<p>
{% for page_number in Doc_warehouse.paginator.page_range %}
{% ifequal page_number Doc_warehouse.number %}
{{ page_number }}
{% else %}
<a href="?page={{ page_number }}">{{ page_number }}</a>
{% endifequal %}
{% endfor %}
</p>
效果呈现如下
今年年初回顾2020年时的日记里写着,去年学到最多的两件事:一个是趁着肺炎,工作後第一次回家长住,一...
干古 微软开发的一个跨平台开源的开发框架, 以前叫 .NET Core, 也继承 .Net Fram...
Linux man-pages 提供与 Linux kernel 以及 GNU C library ...
《30天带你上完 Google Data Analytics Certificate 课程》系列将...
人们经常会被资料抽象和封装混淆,把抽象的概念当作封装或信息隐藏。事实并非如此。以下定义来自 ISO/...