我想创建一个包含许多列的图片查看器。我不确切地知道这个号码。
我想尊重最佳做法。
我已完成以下代码:
{% with max=4 taille=3 %}
{% for image in image_list %}
{% if nb == 1 %}
<div class="row">
{% endif %}
<div class="col-sm-{{ taille }}">
<a href="{{ image.url }}">{{ image.name }}</a>
</div>
{% if nb == 2 %}
</div>
{% endif %}
{% nb += 1 %}
{% if nb > 4 %}
{% nb = 1 %}
{% endif %}
{% endfor %}
{% endwith %}
但模板系统不允许我这样做:
{% nb += 1 %}
你有什么想法吗?谢谢。
答案 0 :(得分:1)
这是一个关于如何执行此操作的快速示例(这是基于2列的itteration),但您可以根据自己的喜好进行更改(例如,替换&#34; 2&#34;使用整数):
<div class="row">
{% for image in image_list %}
<div class="col-sm-6">
<a href="{{ image.url }}">{{ image.name }}</a>
</div>
{% if not forloop.last and forloop.counter|divisibleby:"2" %}
</div>
<div class="row">
{% endfor %}
</div>
答案 1 :(得分:0)
在Django模板中,您不能使用+ = 1运算符 你可以使用forloop.counter
{% if forloop.counter0|divisibleby:4 %} so every 4 iterations
starting with first iteration where
counter is 0
<div class="row">
{% endif %}
<div class="col-sm-{{ taille }}">
<a href="{{ image.url }}">{{ image.name }}</a>
</div>
{% if forloop.counter0|add:"-1"|divisibleby:"4" %} also every 4 iterations
but starting with the 2nd
iteration where counter is 1
</div>
{% endif %}