Могу ли я итерировать мой контекст при просмотре, чтобы поместить его в мой шаблон?
Я создал эту функцию в моих представлениях для итерации по моим страницам.
for chapter in chapters:
context["chapter_page"] = math.ceil((changelogs.index(changelog) + 1) / 2)
context["chapter"] = chapters
return context
Я все еще делаю цикл for в моем шаблоне, поэтому я не могу удалить его. Я добавил этот контекст, но единственной возвращаемой страницей является последняя страница, что означает, что мой контекст["chapter_page"] не итерирует.
{% for chapter in chapters %}
<li>
<a
href="?page={{ chapter_page }}&#{{ chapter.number }}">
{{ chapter.number }}
</a>
</li>
{% endfor %}
Конечно, я не мог добавить эту логику прямо в свой шаблон, она не принимается Django.
{% for chapter in chapters %}
<li>
<a
href="?page={{ math.ceil((chapters.index(chapter) + 1) / 2) }}&#{{ chapter.number }}">
{{ chapter.number }}
</a>
</li>
{% endfor %}
Я ожидаю выполнить цикл и вернуть каждое итерированное число на моей href=
странице. Я предполагаю, потому что вы опустили кучу деталей, но похоже, что вы ожидаете одно значение chapter_page
на главу. Это не то, что вы реализовали. У вас есть ровно одно глобальное значение chapter_page
.
Если вы хотите по одному на главу, то это число должно быть частью объекта chapter
, а не глобальным:
for idx,chapter in enumerate(chapters):
chapter["chapter_page"] = math.ceil((idx + 1) / 2)
context["chapter"] = chapters
return context
и
{% for chapter in chapters %}
<li>
<a
href="?page={{ chapter.chapter_page }}&#{{ chapter.number }}">
{{ chapter.number }}
</a>
</li>
{% endfor %}