Могу ли я итерировать мой контекст при просмотре, чтобы поместить его в мой шаблон?

Я создал эту функцию в моих представлениях для итерации по моим страницам.

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 %}
Вернуться на верх