Как правильно колонизировать таблицы в шаблоне Django - PullRequest
2 голосов
/ 24 июля 2010

В настоящее время я пытаюсь разбить список людей (приблизительно от 20 до 30 элементов) на таблицу из 4 столбцов. Вот мой текущий код.

<table>
{% for person in people %}
    {% cycle "<tr><td>" "<td>" "<td>" "<td>" %}
        {{ person }}
    {% cycle "</td>" "</td>" "</td>" "</td></tr>" %}
{% endfor %}
</table>

Очевидно, это довольно уродливо и не всегда закрывает последний тег TR. Одна из альтернатив, которую я нашел, состояла в том, чтобы разбить мой список людей на несколько списков по 4 человека, а затем перебрать каждый из этих списков. Я надеялся, что есть простой способ сделать это только на стороне шаблонов, без расширения самих шаблонов django (что я также нашел и рассмотрел)

Спасибо!

1 Ответ

11 голосов
/ 25 июля 2010

Используйте фильтр divisibleby.

<tr>
{% for person in people %}
    <td>{{ person }}</td>
    {% if forloop.counter|divisibleby:4 and not forloop.last %}</tr><tr>{% endif %}
{% endfor %}
</tr>
...