Django分页机

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


如何使用django分页

django-pagination允许轻松的digg样式分页,而无需修改 你的观点。

在你的项目中设置它有5个步骤(不包括 安装,在同一目录的install.txt中介绍。)

  1. 在设置的INSTALLED_APPS部分列出此应用程序 文件。您的设置文件可能类似于:

    INSTALLED_APPS = (
        # ...
        'pagination',
    )
    
  2. 安装分页中间件。你的设置文件可能看起来像 例如:

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

    ("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 %}

  5. 决定要分页的变量,并使用 在迭代变量之前自动转移该变量上的标记。这个可以 以两种形式中的一种为例(以规范的object_list为例 变量):

    {% autopaginate object_list %}

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

    {% autopaginate object_list 10 %}

    注意,这将用当前页的列表替换object_list,因此 您可以像平常一样遍历object_list

  6. 现在要显示当前页和可用页,所以 在使用autopaginate之后的某个地方,使用paginate包含标记:

    {% paginate %}

    这不需要任何论据,但假设您已经 称为自动转移,所以一定要先这样做。

就这样!您现在已经对object_list进行了分页,并为该站点的用户提供了 一种在不同页面之间导航的方法-所有这些都不需要触摸您的视图。

可选设置

在django分页中,没有必需的设置。然而,有一个 用于更改 分页标记。以下是概述:

PAGINATION_DEFAULT_PAGINATION
如果未指定编号,则显示在页面上的默认项目数。
PAGINATION_DEFAULT_WINDOW
当前页左右的项目数 显示(表示省略号)。
PAGINATION_DEFAULT_ORPHANS

允许的孤儿数。根据Django的文件, 孤儿定义为:

The minimum number of items allowed on the last page, defaults to zero.
PAGINATION_INVALID_PAGE_RAISES_404
确定无效页是否引发Http404,或仅设置 invalid_page上下文变量。True执行前者和False 是后者。

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

推荐PyPI第三方库


热门话题
用户界面java,使用gui连接到另一台计算机/服务器的文件系统   运行sbt的ubuntu返回错误:“javahome需要<path>参数”   java如何在Android中处理许多ImageView而不出现内存问题?   查询中非法字符的java相同URL失败   安卓取消引用可能会产生“java”。lang.NullPointerException'   java中的indexoutofboundsexception“java.lang.ArrayIndexOutOfBoundsException”错误   xml Java将dom保存到文件>文件在程序结束后由另一个进程打开   Java的垃圾收集器是如何工作的?   Java如何筛选值(列表)   java处理字符串我怎样才能像在真实的书籍中一样在上面部分生成“小数字”呢?   java SonarQube是否有一个API来获取所有项目分析的一部分?   java startActivity(intent)什么都不做   JAVAutil。扫描器类Java   java如何从Firebase更新电子邮件?UpdateMail方法已被弃用   java Hibernate。如何正确组织带有注释的onetomany关系?   在java中获得卷标和驱动器号之间的映射(而不是FileSystemView)的解决方法是什么   java查找文件的路径