我想对Bootstrap进行分页:数据中每10个新字段一个新页面。
file.html
{% for d in data %}
{% if forloop.first %}
<ul class="pagination">
{% endif %}
{% if (forloop.counter % 10) == 0 %}
<li><a href="#{{ forloop.counter }}">{{ forloop.counter % 10 }}</a></li>
{% endif %}
{% if forloop.last %}
</ul>
{% endif %}
{% endfor %}
输出我想那个=&gt; Bootstrap pagination
但是Django给我一个错误: {%if(forloop.counter%10)== 0%} TemplateSyntaxError:/
除了创建我自己的过滤器或添加过滤器之外,我不知道怎么办,但我想首先知道我是否可以先在模板中进行操作。
PS:我使用的是Django 1.5,我无法对其进行升级。
修改
最后我使用了这个条件:
{% if forloop.counter|divisibleby:'10' and forloop.counter|divisibleby:'5' and forloop.counter|divisibleby:'2' %}
就像我知道什么时候我有10倍。
答案 0 :(得分:1)
模数(%)运算符在django模板中不可用。但是,您可以使用divisibleby
(https://docs.djangoproject.com/en/1.5/ref/templates/builtins/#divisibleby)模板过滤器,例如
{% if forloop.counter|divisibleby:"2" %}
答案 1 :(得分:0)
使用paginator,您的QuerySet不会针对孔表进行评估,只是您构建页面所需的数量,它提供了可以在模板中使用的属性,如(page_range,next_page_number,has_next等) 这是BootStrap 2和django.core.paginator:
的代码 <div class="pagination pagination-centered">
<ul>
{% if MYDATAENTIRES.has_previous %}
<li>
<a href="?page={{ MYDATAENTIRES.previous_page_number }}">{% trans "Précédent" %}</a>
</li>
{% endif %}
{% for i in MYDATAENTIRES.paginator.page_range %}
<li {% ifequal MYDATAENTIRES.number i %} {{ 'class="disabled"' }} {% endifequal %}>
<a href="?page={{ i }}">
{{ i }}
</a>
</li>
{% endfor %}
{% if MYDATAENTIRES.has_next %}
<li>
<a href="?page={{ MYDATAENTIRES.next_page_number }}">{% trans "Suivant" %}</a>
</li>
{% endif %}
</ul>
</div>