2010-12-06 60 views
8

我想显示数据,每行三列。我想我的结果看起来像下面这样:如何在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在/

'为' 语句应当使用 '在Y X' 的格式为:对于i在范围(0,LEN(all_products_list),3)

回答

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)。

+0

感谢您的回答,但它是一个模板标签,这是一个从mysql检索的数据列表 – 2010-12-06 22:33:36

-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> 

对不起,被误会的问题。

+0

感谢您这样一个快速的答案,但语法错误?此方法在模板中不起作用? – 2010-12-06 22:26:45