跳转到主要内容

Django的无限分页。

项目描述

这是一个为Django 1.4设计的非常简单的辅助工具,它只做一件事:在标准Django Paginator不适用(即PostgreSQL由于显著的count(*)查询开销)的系统中有效地分页大型对象集合。

在内部,它使用单个查询来检索当前页的对象并检查下一页的可用性。

InfinitePaginator 是 Django django.core.paginator.Paginator 的替代品。

快速入门

django-infinite-pagination 包含在您的需求文件中(或 pip install django-infinite-pagination)并将 infinite_pagination 添加到 INSTALLED APPS

然后设置基于 ListView 的视图的 paginator_class 属性为 InfinitePaginator 并指定 paginate_by 属性

class ArticleListView(ListView):
    model = Article
    paginate_by = 10
    paginator_class = InfinitePaginator

要在模板中显示分页链接,请加载 infinite_pagination 模板标签并在您希望显示分页链接的位置放置 {% paginate %}

{% load infinite_pagination %}

{% for object in object_list %}
    {{ object }}
{% endfor %}

{% paginate %}

此应用程序提供了一种通用的 pagination/infinite_pagination.html 模板,它非常适合与Twitter Bootstrap样式表一起使用。根据您的需求进行调整。

在模板中分页

有时无法修改应用程序视图,分页只能在模板级别进行。提供了一个名为autopaginate的模板标签,作为在模板内部对象列表中应用分页的最后一招。

{% load infinite_pagination %}

{% autopaginate object_list per_page=10 as paginated_list %}

{% for object in paginated_list %}
    {{ object }}
{% endfor %}

{% paginate %}

autopaginate标签接受一个查询集和每页的项目数量作为输入,并返回一个用于在模板中显示的页面切片。当前页码是从模板上下文或page请求GET参数中检索的。它也可以作为可选标签参数指定。

{% autopaginate object_list per_page=10 page=2 as paginated_list %}

该标签还设置了用于paginate标签的paginatorpage_obj模板上下文变量,以使用它们渲染导航链接。

许可证

django-infinite-pagination在BSD许可下发布。

其他资源

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。

源分发

由以下支持