django1.5 网站列表自动分页
做一个博客站或者一个新闻站或者一个发布站或者一个……哦,不管什么站点,只要需要发布信息的,应该都不会把所有的信息放在同一个页面上吧。你有十篇文章可以一页放完,一百篇呢?只放题目?一千篇呢?更多呢?必须使用像论坛或者贴吧那样的分页功能了。
为了寻找分页功能,我首先找到了Django中国社区,左边的链接上提供了一个解决方案。这也是Django中文社区站长使用的方案,他采用了django-pagination这个app,使用起来很简单,貌似是最广泛应用的一款Django分页工具。
这个方案的使用环境是Django1.4版本。原帖中的评论中有朋友提到用Django1.5.1不能正常使用,Django1.5.1的settings.py中没有TEMPLATE_CONTEXT_PROCESSOR这一项,添加也没有效果。
于是我决定参考这个博客,采用Django自带的Paginator写views.py。暂时使用了下面的实现页面:
<table>
<tr>
{% if posts.has_previous %}
<td>
<a href="?page={{ posts.previous_page_number }}">上一页 </a>
</td>
{% endif %}
{% if posts.has_next %}
<td>
<a href="?page={{ posts.next_page_number }}">下一页</a>
</td>
{% endif %}
<td> 第 {{ posts.number }} 页,共 {{ posts.paginator.num_pages }} 页 </td>
<form action="." method="get">
<td>到第</td>
<td><input name="page" ></td>
<td> 页 </td>
<td><input value=" 跳转 "></td>
</form>
</tr>
</table>
效果如图: