我在我的网站有一个分页,但它显示了我像1-19每一页,我只想显示只有5页。 Django分页器页面范围不显示所有数字
我该怎么做?
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)
我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>
这是一个很好的解决方案顺便说一句,但你的'link_name'工程错误。 此版本工作正确: '@ register.filter(名称= 'LINK_NAME') DEF LINK_NAME(路径,PAGE_NUMBER): URL =里urlparse(路径) QS = parse_qs(URL [4]) PAGE_NUMBER = STR( page_number) qs ['page'] = page_number return urlunparse((url [0],url [1],url [2],url [3],urlencode(qs),url [5])) ' –
谢谢@elfuego,你能告诉我什么是失败的,需要你添加额外的代码,以及Django的版本是你在使用什么?我将它部署在生产站点上,没有遇到任何问题,但仅在1.11上进行了测试。 – LNI
实际的问题是,每当你点击一个页面链接,一个额外的'&page = X'被添加到链接,所以最终你会得到'...?page = X&page = Y ...'。 我的Django版本是2.0.1,我的Python版本是'3.6.2'。 –