次の 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 %}
ループで条件が満たされた場合は、下に表示できるように truefor
に変更したいと思います。ただし、インナーのスコープはステートメントに限定されているように見えるため、目的が設定されることはありません。mybool
mybool is true!
mybool
if
mybool
「グローバル」を設定mybool
して、最後のif
ステートメントで使用できるようにするにはどうすればよいですか?
編集
いくつかの提案(正しくキャッシュされたページ ビューのみ)を見つけましたが、それらは機能していないようです。おそらく、Jinja2では廃止されています...
編集
以下に提供されるソリューション。上記の提案がなぜうまくいかないのか、私はまだ興味があります。それらが廃止されたことを誰かが確実に知っていますか?