Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

django: templates how to fill a table of 3 items in a row

I want to fill a table with a list of results. But not sure how to tell the template that it's time to close current and start a new one, after 3 products was already displayed in current tr....

Would be happy if somebody could advice on it. I am running django 1.1.1

like image 932
Oleg Tarasenko Avatar asked Nov 28 '22 19:11

Oleg Tarasenko


2 Answers

Even better is to add a foorloop.last condition to add </tr> at the end of the last row:

{% for item in results %}
{% if forloop.counter0|divisibleby:3 %}<tr>{% endif %}
<td>{{ item }}</td>
{% if forloop.counter|divisibleby:3 or forloop.last %}</tr>{% endif %}
{% endfor %}
like image 72
Jindřich Mynarz Avatar answered Jan 05 '23 01:01

Jindřich Mynarz


Easiest way is to use the divisibleby filter.

{% for item in results %}
{% if forloop.counter0|divisibleby:3 %}<tr>{% endif %}
<td>{{ item }}</td>
{% if forloop.counter|divisibleby:3 %}</tr>{% endif %}
{% endfor %}
like image 31
Daniel Roseman Avatar answered Jan 05 '23 01:01

Daniel Roseman