Добавить 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 переменная.

Другие вопросы по тегам