2013-11-14 48 views
0

我想输出每行2项。我有4个项目来自数据库。for循环Django模板逻辑 - 我该怎么做?

<table> 
<tr> 
{% for item in items %} 
    <td> 
    {{item.name}},{{item.size}} 
    </td> 
{% endfor %} 
</tr> 
</table> 

这是给我

name1, 23m^2 | name2,20m^2 | name3,15m^2 | name4,10m^2 

,但我需要

name1, 23m^2 | name2,20m^2 
name3,15m^2 | name4,10m^2 

每行包含在单独<tr>。我坚持如何打破循环,并指定新行..

+0

@AlexParakhnevich,不,不是更多..以及可能会更多,但它会修复号码 – doniyor

回答

2

只需切换<tr>forloop,并且还使用forloop.counterdivisibleby

事情是这样的:

{% if items %} 
<tr> 
{% for item in items %} 
    <td>{{item.name}},{{item.size}}</td> 
    {% if forloop.counter|divisibleby:2 %} 
    </tr> 
    <tr> 
    {% endif %} 
{% endfor %} 
</tr> 
{% endif %} 
+0

像平常一样! :)。让我测试 – doniyor

+0

但我明白了,我可以检查loopcounter并生成对不对? – doniyor

+0

简单的回答:是的,你可以(理想情况下,你应该),但在这种情况下,逻辑并不那么简单。检查编辑,并让我知道如果服务的目的 – karthikr

0

你忘了关<td>标签。

<table> 
<tr> 
{% for item in items %} 
    <td> 
    {{item.name}},{{item.size}} 
    </td> <!-- here --> 
{% endfor %} 
</tr> 
</table> 
+0

谢谢,但这是我的错字只在这篇文章中 – doniyor