当前位置: 代码迷 >> Web前端 >> Django 分页插件:django-pagination
  详细解决方案

Django 分页插件:django-pagination

热度:1334   发布时间:2012-09-04 14:19:30.0
Django 分页插件:django-pagination .

下载地址:http://pypi.python.org/pypi/django-pagination#downloads

Google Code的Project可能被作者关闭了,现在没法打开,具体原因未知。

解压、安装。

完成后配置如下:

1. 将安装文件中的 pagination 文件夹拷贝到项目的根目录下

2. settings.py 修改

添加 App

?

[python] view plaincopyprint?
  1. INSTALLED_APPS?=?(??
  2. ????????????????#?... ??
  3. ????????'pagination',??
  4. ????????????)??

?

添加中间件

?

[python] view plaincopyprint?
  1. MIDDLEWARE_CLASSES?=?(??
  2. ????????#?... ??
  3. ????????????'pagination.middleware.PaginationMiddleware',??
  4. ????)??

?

添加

?

[python] view plaincopyprint?
  1. TEMPLATE_CONTEXT_PROCESSORS?=?(??
  2. ????????"django.core.context_processors.auth",??
  3. ????????"django.core.context_processors.debug",??
  4. ????????"django.core.context_processors.i18n",??
  5. ????????"django.core.context_processors.media",??
  6. ????????"django.core.context_processors.request"??
  7. ????)??

3.修改需要分页的模板文件:

?

模板中顶部位置,添加{% load pagination_tags %};

添加分页处理,默认为每 20 项分页一次:{% autopaginate contents %},其中 contents即为 views 所传递的结果集;如果需要按每 10 项分页一次,可写为:{% autopaginate contents 10 %};

展现分页结果,在模板中,内容呈现的后面输入:{% paginate %}

4. views.py 编写

views.py 中的内容比使用Django自带分页机制所写要简单很多,内容如下:

?

[python] view plaincopyprint?
  1. def?listing(request):????
  2. ????????contents?=?Contents.objects.all()????
  3. ????????return?render_to_response('templates_tmp.html',?{"contents":?contents})???

大家不要笑出来,确实就这么简单。

5. 其他选项

?

[html] view plaincopyprint?
  1. PAGINATION_DEFAULT_PAGINATION?????????每页显示数量??
  2. PAGINATION_DEFAULT_WINDOW???????????????分页显示在当前页左右两边的页数??
  3. PAGINATION_DEFAULT_ORPHANS??????????????最后一页显示的最小页数,默认为0??
  4. PAGINATION_INVALID_PAGE_RAISES_404??当页数不存在时,是否显示404页面 ?


转自 http://blog.csdn.net/l_courser/article/details/7038859