kiss方法是一个“加载更多”风格的ajax分页器。
django-pagemore的Python项目详细描述
“加载更多”风格ajax分页器的kiss方法
要求
- Django 1.3+
- jquery
功能
- 非侵入性:django视图完全不知道动态 装更多的东西。
- 实际上不需要任何代码(没有python,没有javascript)来 使用完全ajax风格的“加载更多”。
- 亲吻
快速启动
像往常一样写下你的观点,交出一份(不激动的)清单 项目到模板。
按如下方式呈现模板中的项目列表:
{% load pagemore %} {% more_paginator items per_page=10 ordered_by="-created_at" as paginator %} {% for item in paginator.objects %} {% if forloop.first %} <div class="pagemore-container"> {% endif %} {{item}} {% if forloop.last %} </div> {% if paginator.has_more %} <a class="pagemore-paginator" href="?{{paginator.next_query}}">More items...</a> {% endif %} {% endif %} {% endfor %} <script type="text/javascript" src="{{STATIC_URL}}pagemore/js/pagemore.js"></script> <script type="text/javascript"> $(function() { $(".pagemore-paginator").pagemore(); }); </script>
就这些!
分页策略
当用户在项目列表中分页时,同时 插入新项目的时间,将导致基于偏移的切片 显示重复项。避免这种情况的方法是 确保项目的顺序正确,并在 某一点。两种战略都得到支持。
通过切片分页
用法:
{% more_paginator ... strategy="slice" ... %}
特点:
- 同时支持查询集和列表
- 除非明确告知(按排序),否则不会对对象进行排序。
通过过滤分页
用法:
{% more_paginator ... strategy="filter" ... %}
特点:
- 仅支持查询集
- 强制对传递的对象进行排序(默认为id,可重写 按排序。