2010-12-06 37 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