使用bootstrap的布局,在django中轻松添加分页。
django-pagination-bootstrap的Python项目详细描述
django分页引导
django分页引导程序是一个应用程序,可以使用Bootstrap的布局在Django中轻松添加分页。
安装
要安装django-pagination-bootstrap,只需运行:
pip install django-pagination-bootstrap
配置
我们需要将django-pagination-bootstrap挂接到我们的项目中。
将pagination-bootstrap放入设置模块中的INSTALLED_APPS:
INSTALLED_APPS = ( ... 'pagination_bootstrap', )
安装分页中间件。您的设置文件可能类似于:
MIDDLEWARE_CLASSES = ( ... 'pagination_bootstrap.middleware.PaginationMiddleware', )
如果尚未在设置中添加,请添加请求上下文处理器。请注意,默认情况下上下文处理器是隐式设置的,因此要显式设置它们,需要将此代码复制并粘贴到值模板下的上下文处理器中。
对于1.8之前的django版本:
TEMPLATE_CONTEXT_PROCESSORS = ( "django.contrib.auth.context_processors.auth", "django.core.context_processors.debug", "django.core.context_processors.i18n", "django.core.context_processors.media", "django.core.context_processors.request" )
对于1.8以后的django版本:
TEMPLATES = [ { "BACKEND": "django.template.backends.django.DjangoTemplates", "DIRS": [], "APP_DIRS": True, "OPTIONS": { "context_processors": [ "django.template.context_processors.debug", "django.template.context_processors.request", "django.contrib.auth.context_processors.auth", "django.template.context_processors.i18n", "django.template.context_processors.media", ], }, }, ]
在模板顶部添加此行以加载分页标记:
{% load pagination_tags %}
决定要分页的变量,并在迭代之前对该变量使用autopaginate标记。这可以采用以下两种形式之一(使用规范对象列表作为示例变量):
{% autopaginate object_list %}
这假设您希望每页有默认的20个结果。如果您想指定自己每页的结果量,您可以这样指定:
{% autopaginate object_list 10 %}
请注意,这将用当前页的列表替换object_list,因此您可以像平常一样在object_list上迭代。
现在你想显示当前页面和可用页面,所以在使用了autopaginate之后。如果您使用的是bootstrap 3,请使用paginate inclusion标记:
{% paginate %}
这不需要任何参数,但假设您已经调用了autopaginate,所以请确保首先这样做。
对于引导程序2,请使用以下版本:
{% paginate_bs2 %}
就这样!现在,您已经对object_list进行了分页,并为站点用户提供了在不同页面之间导航的方法,所有这些都不会影响您的视图。
可选设置
在django分页中,没有必需的设置。但是,有一小部分可选设置可用于更改分页标记的默认行为。以下是概述:
分页默认分页
如果未指定数字,则显示在页面上的默认项目数。
分页默认窗口
要显示的当前页左侧和右侧的项目数(以省略号表示)。
分页默认孤立项
允许的孤儿数量。根据django文档,孤儿定义为:
The minimum number of items allowed on the last page, defaults to zero.
分页无效页引发404
确定无效页是引发http404,还是仅设置无效的页面上下文变量。前者为真,后者为假。
学分
这基于eric florenzano的django分页1.0.7,是django 1.7或更高版本的https://github.com/tgdn/django-bootstrap-pagination的更新版本。