跳转到主要内容

Django的无限制分页。

项目描述

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

底层它使用单个查询来检索当前页面的对象并检查后续页面的可用性。

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

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

许可证

django-infinite-pagination 采用 BSD 许可证发布。

其他资源

项目详情


下载文件

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

源分发

django-infinite-pagination-1.0.zip (14.3 kB 查看散列)

上传时间

由以下提供支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面