Добавить HTML к зацикленным элементам, кроме первого
Можно ли получить for
количество элементов цикла, а затем добавить HTML для всех элементов после первого?
Рабочий код:
{% for page in pages.all limit:6 %}
<li>{{ page | link_to }}</li>
{% endfor %}
HTML будет выглядеть так:
<li>
List Item 1
</li>
<li>
<span class="spacer"></span>
List Item 2
</li>
<li>
<span class="spacer"></span>
List Item 3
</li>
Я пробовал что-то вроде этого, но это не сработало:
{% for page in pages.all limit:6 %}
<li>{% if page != 1 %}<span class="spacer"></span>{% endif %}{{ page | link_to }}</li>
{% endfor %}
2 ответа
Решение
Нашел ответ... forloop.index
{% for page in pages.all limit:6 %}
<li>{% if forloop.index != 1 %}<span class="spacer"></span>{% endif %}{{ page | link_to }}</li>
{% endfor %}
Вы можете добавить логическую переменную first_item
, который инициализируется true
, а затем использовать
<li>{% if first_item %}<span class="spacer"></span>{% endif %}{{ page | link_to }}</li>
с последующим назначением false
в first_item
переменная.