2013-11-14 3 views
0

Я пытаюсь вывести 2 элемента для каждой строки. У меня есть 4 предмета из db.for loop django template logic - как я могу это сделать?

<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.counter и divisibleby

Что-то вроде этого:

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

Смежные вопросы