有什么办法让页面显示django分页更好?我跟着[doc] [1]创建它,但希望有简单的方法来组织页码显示。Django分页显示问题:所有页码显示
目前,它示出了所有的页面,说我有10页,然后
先前1 2 3 4 5 6 7 8 9 10下
如果有100,则它会显示所有100,其很疯狂。
有什么办法简单的方法来显示它更短?
例如:
先前1 2 3 ... ... 98,99,100下(图67是在当前页)
先前1 2 3 ... 65 66 68 69 ... 100下一个
它不必看起来像上面的例子,但只是不希望它显示每一个页码没有限制。
就像文档一样,我使用下面的代码创建了我的分页。
模板文件
{% if is_paginated %}
<div id="pagination">
<ul>
{% if page_obj.has_previous %}
<li> <a href="?page={{page_obj.previous_page_number}}">Previous</a> </li>
{% else %}
<li> Previous</li>
{% endif %}
{% for page_number in paginator.num_pages|template_range %}
{% ifequal page_number page_obj.number %}
<li class="currentpage">{{page_number}}</li>
{% else %}
<li> <a href="?page={{page_number}}">{{page_number}}</a> </li>
{% endifequal %}
{% endfor %}
{% if page_obj.has_next %}
<li> <a href="?page={{page_obj.next_page_number}}">Next</a></li>
{% else %}
<li> Next </li>
{% endif %}
</ul>
</div>
{% endif %}
Views.py
news = News.active.all().order_by("-created_at")
paginator = Paginator(news, 15)
is_paged = False
page = None
try:
paginator.validate_number(currpage)
except (EmptyPage, InvalidPage):
#return bad_or_missing(request, ("Invalid page number"))
currpage = paginator.num_pages
is_paged = paginator.num_pages > 1
page = paginator.page(currpage)
ctx = RequestContext(request, {
'all_news_list' : page.object_list,
'is_paginated' : is_paged,
'page_obj' : page,
'paginator' : paginator,
'featured_categories' : featured_categories,
})
response = render_to_response(template_name, context_instance=ctx)
return response
谢谢。
你看了管理员密码? paginator有相当不错的 – Jerzyk 2011-04-18 22:44:43