У меня есть следующий шаблон Jinja:
{% set mybool = False %}
{% for thing in things %}
<div class='indent1'>
<ul>
{% if current_user %}
{% if current_user.username == thing['created_by']['username'] %}
{% set mybool = True %}
<li>mybool: {{ mybool }}</li> <!-- prints True -->
<li><a href='#'>Edit</a></li>
{% endif %}
{% endif %}
<li>Flag</li>
</ul>
</div>
<hr />
{% endfor %}
{% if not mybool %}
<!-- always prints this -->
<p>mybool is false!</p>
{% else %}
<p>mybool is true!</p>
{% endif %}
Если условие выполнено в цикле for
, я бы хотел изменить mybool
на true, чтобы я мог отобразить mybool is true!
ниже. Однако, похоже, что область действия внутреннего mybool
ограничена оператором if
, поэтому требуемый mybool
никогда не устанавливается.
Как я могу установить "глобальный" mybool
, чтобы я мог использовать его в последнем if
выражении?
EDIT
Я нашел некоторые предложения (только кешированные просмотры страниц правильно), но, похоже, они не работают. Возможно, они устарели в Jinja2 ...
EDIT
Решение приведено ниже. Мне все еще любопытно, почему вышеупомянутые предложения не работают все же. Кто-нибудь знает наверняка, что они устарели?