使用bootstrap的布局,在django中轻松添加分页。

django-pagination-bootstrap的Python项目详细描述


TravisPython27Python35PyPi

django分页引导

django分页引导程序是一个应用程序,可以使用Bootstrap的布局在Django中轻松添加分页。


安装

要安装django-pagination-bootstrap,只需运行:

pip install django-pagination-bootstrap

配置

我们需要将django-pagination-bootstrap挂接到我们的项目中。

  1. pagination-bootstrap放入设置模块中的INSTALLED_APPS

    INSTALLED_APPS = (
       ...
       'pagination_bootstrap',
    )
    
  2. 安装分页中间件。您的设置文件可能类似于:

    MIDDLEWARE_CLASSES = (
        ...
        'pagination_bootstrap.middleware.PaginationMiddleware',
    )
    
  3. 如果尚未在设置中添加,请添加请求上下文处理器。请注意,默认情况下上下文处理器是隐式设置的,因此要显式设置它们,需要将此代码复制并粘贴到值模板下的上下文处理器中。

对于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",
            ],
        },
    },
]
  1. 在模板顶部添加此行以加载分页标记:

    {% load pagination_tags %}
    
  2. 决定要分页的变量,并在迭代之前对该变量使用autopaginate标记。这可以采用以下两种形式之一(使用规范对象列表作为示例变量):

    {% autopaginate object_list %}
    

这假设您希望每页有默认的20个结果。如果您想指定自己每页的结果量,您可以这样指定:

{% autopaginate object_list 10 %}

请注意,这将用当前页的列表替换object_list,因此您可以像平常一样在object_list上迭代。

  1. 现在你想显示当前页面和可用页面,所以在使用了autopaginate之后。如果您使用的是bootstrap 3,请使用paginate inclusion标记:

    {% paginate %}
    

这不需要任何参数,但假设您已经调用了autopaginate,所以请确保首先这样做。

对于引导程序2,请使用以下版本:

{% paginate_bs2 %}

就这样!现在,您已经对object_list进行了分页,并为站点用户提供了在不同页面之间导航的方法,所有这些都不会影响您的视图。

副作用

一个django-paginator实例将作为paginator注入模板上下文。您可以像往常一样访问它:

page {{ page }} of {{ paginator.num_pages }}

可选设置

在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的更新版本。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java有没有工具可以将zephyr转换为velocity模板?   java在安卓 studio中从JSON响应中获取值   jvm如何在Java中设计一个好的permgen空间字符串?   java如何防止Rest webservice使用被盗令牌进行身份验证   java无法遍历列表JSTL   找不到用于ResourceServerTokenServices的java Bean SpringSecurityOauth2   java子字符串替换问题   爪哇玻璃鱼3。十、 以编程方式处理任意HTTPSession的终止   java如何检查输入是否为整数,并在最后添加一个命令来重新启动while循环?   引发java ical4j 1.0.6不可解析日期异常   Java等价于Delphi的DBCtrlGrid?   如果发生错误,java将查找下一个预期标记ANTLR 3   java自打开应用程序(创建锁屏)   java为什么netty有自己的ConcurrentHashMap?   Gradle任务中的java拉取和运行依赖项   继承与Java继承的混淆   java使用shell脚本中的版本执行jar   java我无法让Sqlite数据库与带有Maven的JavaFX应用程序IDE Eclipse包正确通信   java控制台日志未通过org打印。阿帕奇。hadoop。mapreduce。作业的waitForCompletion(true)方法   JAVAlang.NoSuchMethodError:apachestorm螺栓中的spring getrequest