У меня есть код, похожий на следующий в одном из шаблонов jinja
{% for post in posts %}
{% include ["posts/" + post.type + ".html", "posts/default.html"] %}
{% endfor %}
который должен отображать каждый post
внутри коллекции posts
, в зависимости от .type
сообщения. У меня есть другая настройка шаблона для каждого post.type
. И для тех, у кого нет шаблона, он возвращается к шаблону post default
.
Теперь я хочу, чтобы индекс сообщения отображался снизу, внутри шаблонов сообщений, который предоставляется loop.revindex
. Но по какой-то причине, если я использую loop.revindex
внутри шаблона сообщения, я получаю сообщение об ошибке UndefinedError: 'loop' is undefined
.
Итак, loop
недоступен в шаблонах include
d? Это по дизайну? Я делаю что-то неправильно с тем, как я организовал свои шаблоны, чтобы это было недоступно?
Изменить Хорошо, я применил обходной путь в цикле for, прежде чем включать свой шаблон, я делаю
{% set post_index = loop.revindex %}
и используйте post_index
внутри шаблона сообщения. Не идеальный, но, похоже, единственный способ. Я все еще хочу знать ваши решения.
Изменить 2. Еще одна вещь: я могу получить доступ к переменной post
внутри шаблона include
d, но не к переменной loop
.