首先要做的就是下载django-pagination插件,装上即可;
完成后,使用方法如下:
1.在自己的项目setting.py文件中添加,
INSTALLED_APPS = (
# ...
'pagination',
)
2.添加中间件
MIDDLEWARE_CLASSES = (
# ...
'pagination.middleware.PaginationMiddleware',
)
3.添加context
TEMPLATE_CONTEXT_PROCESSORS = (
"django.core.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.request"
)
4.添加代码到自己需要分页的模板中
{% load pagination_tags %}
{% autopaginate topics %} <!-- 添加分页处理,默认为每 20 项分页一次 -->
<!-- {% autopaginate topics 10 %} 这样可以指定分页的项数-->
{% paginate %}
5.在views.py中定义视图函数
def listing(request):
topics= Topic.objects.all()
return render_to_response('templates_pg.html', {"topics": topics})
到此为止,整个的分页处理已经可以使用;另外还有一点就是定制自己的分页,自己DIY显示的样式和方式,如下,
6.修改默认的分页模板,拷贝一份在site-packages/pagination/templates/pagination.html到自己的项目中,路径是:{{项目根目录}}/templates/paginatioin/pagination.html,想要如何修改,看自己需求;
7. 修改默认选项
添加到settings.py中,设置就ok了。
PAGINATION_DEFAULT_PAGINATION 每页显示数量
PAGINATION_DEFAULT_WINDOW 分页显示在当前页左右两边的页数
PAGINATION_DEFAULT_ORPHANS 最后一页显示的最小页数,默认为0
PAGINATION_INVALID_PAGE_RAISES_404 当页数不存在时,是否显示404页面
over!!!