我有以下html结构:
<div class="row>
<div class="box"></div>
<div class="box"></div>
</div>
我在Django上使用分页功能每页传递6个项目。
如何使用行div包装每个带有div div的两个div div,我将如何迭代paginator生成的对象列表?
答案 0 :(得分:4)
您可以使用模板中的forloop.counter
{% for obj in obj_list %}
{% if forloop.counter0|divisibleby:2 %}
<div class="row">
{% endif %}
<div class="box"></div>
<div class="box"></div>
{% if forloop.counter|divisibleby:2 %}
</div>
{% endif %}
{% else %}
Nothing to show
{% endfor %}
如果列表中有奇数个元素,那么它就不会有尾随div
。我会让你自己弄清楚那个场景。 (这很简单)
forloop.counter0
can be found here的文档
divisibleby
can be found here
答案 1 :(得分:0)
我同意karthikr的解决方案,但如果你有3件,则不会打印</div>
...
你必须添加一个forloop.last
来处理这种情况:
{% for obj in obj_list %}
{% if forloop.counter0|divisibleby:2 %}
<div class="row">
{% endif %}
<div class="box"></div>
<div class="box"></div>
{% if forloop.counter|divisibleby:2 or forloop.last %}
</div>
{% endif %}
{% else %}
Nothing to show
{% endfor %}