如何在Django/Python中按行循环三个列?
我想在我的循环中每行显示三列数据。希望我的结果看起来像下面这样:
<table>
<tr><td>VALUE1</td><td>VALUE2</td><td>VALUE3</td></tr>
<tr><td>VALUE4</td><<td>VALUE5</td><td>VALUE6</td></tr>
</table>
有人知道怎么做吗?
语法错误
在 / 的地方出现了 TemplateSyntaxError
'for' 循环的写法应该是 'for x in y' 这样的格式:for i in range(0, len(all_products_list), 3)
2 个回答
-2
<table>
{% for i in range(0, len(stuff), 3) %}
<tr>
{% for j in range(3) %}
<td>{{ stuff[i+j] }}</td>
{% endfor %}
</tr>
{% endfor %}
</table>
抱歉,我误解了问题。
23
这里有一个叫做divisibleby的标签。
所以你可以做一些(看起来不太好看的)事情,比如:
<table><tr>
{% for field in form %}
<td>{{ field }}</td>
{% if forloop.last %}
</tr>
{% else %}
{% if forloop.counter|divisibleby:"3" %}
</tr><tr>
{% endif %}
{% endif %}
{% endfor %}
</table>
另外,你可以给你的表单类添加一个叫做table_print
的方法,这个方法会返回一个HTML字符串(用mark_safe
包裹起来)。