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标签的paginator和page_obj模板上下文变量,以使用它们渲染导航链接。
许可证
django-infinite-pagination在BSD许可下发布。
其他资源
项目详情
django-infinite-pagination-mega-1.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0b28fb0a8da4224616c062cc065fe96b3d58e5ff68008f8cdae092e8232cb05d |
|
MD5 | 4615205ef3f8fc43e0eddc0ba40f0d98 |
|
BLAKE2b-256 | 2f1675dcab3b5599ed4c11b05cf58774b0f3de7850a9a37d586fddf2e9555337 |