django的无限分页。
django-infinite-pagination-mega的Python项目详细描述
对于django 1.4来说,这是一个非常简单的助手,它只做一件事:高效 在使用标准django的系统上分页大型对象集合 paginator不实际,因为有意义的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引导样式表。调整它以适应 要求。
在模板中分页
有时无法修改应用程序视图,并且分页只能 在模板级别完成。提供了autopaginate模板标记 作为对模板内的对象列表应用分页的最后手段:
{% load infinite_pagination %} {% autopaginate object_list per_page=10 as paginated_list %} {% for object in paginated_list %} {{ object }} {% endfor %} {% paginate %}
autopaginate标记接受一个queryset和每页的许多项 作为输入并返回用于在模板中显示的页片。当前页 从模板上下文或pagerequest get params检索数字。 它也可以指定为可选的标记参数:
{% autopaginate object_list per_page=10 page=2 as paginated_list %}
标记还设置paginator和page_obj模板上下文变量 使用它们呈现导航链接的paginate标记。
许可证
django无限分页是根据bsd许可证发布的。