如何在Django / python中每行循环三列?

时间:2010-12-06 21:56:17

标签: python django for-loop

我想显示数据,在我的期间每行三列。我希望我的结果如下所示:

<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 y in y':for i in range(0,len(all_products_list),3)

2 个答案:

答案 0 :(得分:22)

有一个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中)。

答案 1 :(得分:-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>

抱歉误解了问题。