37,742
社区成员
发帖
与我相关
我的任务
分享
我是这样想得,判断当前页面,如: 1 2 34 5 然后计算4前面的页数,如果大于二 那就把第一个去掉,后面补一个..... 感觉这个思路有点智障。。。。 麻烦各位大神能给我个详细点的思路..
试过在网上搜,但是都是JS JAVA的,看的不是很明白
<div class="pagination">
<span class="step-links">
{% if page.has_previous %}
<a href="?page={{ page.previous_page_number }}">Previous</a>
{% endif %}
<span class="current">
Page {{ page.number }} of {{ page.paginator.num_pages }}.
</span>
{% if page.has_next %}
<a href="?page={{ page.next_page_number }}">Next</a>
{% endif %}
</span>
</div>
在模板里插入这个分页
{% block content %}
...
{% include "pagination.html" with page=posts %}
{% endblock %}
# views.py
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
def post_list(request):
object_list = Post.published.all()
paginator = Paginator(object_list, 3) # 3 posts in each page
page = request.GET.get('page')
try:
posts = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer deliver the first page
posts = paginator.page(1)
except EmptyPage:
# If page is out of range deliver last page of results
posts = paginator.page(paginator.num_pages)
return render(request,'blog/post/list.html',
{'page': page,'posts': posts})