I.J*_*dze 5 python django django-pagination
我在我的网站上有一个分页,但它向我显示每个页面,如1-19,我只想显示5页.
我怎样才能做到这一点?
views.py
paginator = Paginator(object_list, new_number_of_list)
page = request.GET.get('page')
try:
Items = paginator.page(page)
except PageNotAnInteger:
Items = paginator.page(1)
except EmptyPage:
Items = paginator.page(paginator.num_pages)
variables = RequestContext(request, {"Items": Items,
"ForItemCount": ForItemCount,
"page": page,
})
return render(request, 'templates/Core/resource_base.html',
variables)
Run Code Online (Sandbox Code Playgroud)
我的pagination.html
<div class="pagination p1">
<span class="step-links">
<ul>
{% for l in Items.paginator.page_range %}
<li><a href="?page={{forloop.counter}}">{{forloop.counter}}</a></li>
{% endfor %}
</ul>
</span>
</div>
Run Code Online (Sandbox Code Playgroud)
小智 12
可以使用的另一个快速解决方案(例如+和 - 5限制):
{% for l in Items.paginator.page_range %}
{% if l <= Items.number|add:5 and l >= Items.number|add:-5 %}
<li><a href="?page={{forloop.counter}}">{{forloop.counter}}</a></li>
{% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
您已经{{ forloop.counter }}在其中了,可以将其限制为五个。
{% for l in Items.paginator.page_range %}
{% if forloop.counter < 5 %}
<li><a href="?page={{forloop.counter}}">{{forloop.counter}}</a></li>
{% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
这是另一种解决方案,如果您感兴趣的话,它可以为您提供更多选择:Django分页显示问题:所有页码都显示出来。
最后,这是一个很好的教程,帮助您快速了解django提供的分页功能:https : //simpleisbetterthancomplex.com/tutorial/2016/08/03/how-to-paginate-with-django .html。
| 归档时间: |
|
| 查看次数: |
5713 次 |
| 最近记录: |