Джанго вложенные циклы в шаблонах - PullRequest
2 голосов
/ 05 марта 2011

Как вывести следующее? Я хочу вывести класс "grid" после ровно 4 классов "block". Внутренние элементы div - это объекты, возвращаемые из представления.

<div class="grid">
    <div class="block">...</div>
    <div class="block">...</div>
    <div class="block">...</div>
    <div class="block">...</div>
</div>
<div class="grid">
    <div class="block">...</div>
    <div class="block">...</div>
    <div class="block">...</div>
    <div class="block">...</div>
</div>
...

Я пытался использовать forloop.counter0 | divisibleby: 4, но безуспешно.

Ответы [ 2 ]

13 голосов
/ 05 марта 2011

Я думаю, что вы на правильном пути с методом счетчика. Однако, похоже, что у вас просто пара синтаксических ошибок, которые сбивают вас с толку. Вы, вероятно, хотите forloop.counter|divisibleby:"4", так что-то вроде

<div class="grid">
    {% for item in items %}
        <div class="block">...</div>
        {% if forloop.counter|divisibleby:"4" %}
</div>
<div class="grid">
        {% endif %}
    {% endfor %}
</div>

должен сделать трюк.

1 голос
/ 05 марта 2011

Попробуйте forloop.counter | divisibleby: 4. Добавление нуля означает, что цикл индексируется нулем. К тому времени, когда вы дойдете до 4-го цикла, счетчик будет показывать только 3, что не делится поровну на 4.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...