私はtest
Jinja2のフレーム変数
from jinja2.utils import contextfunction
@contextfunction
def test(context):
context.get_all()
グローバル機能を持っており、私のテストでは、私はこのようにそれを呼んでいる...
{% set i = 0 %}
{% for j in range(0, 10) %}
{% set k = 0 %}
{{ test() }}
{% endfor %}
で終わる唯一の変数test
のcontext
はi
です。 j
とk
は「判読不能」です。 test(j, k)
あなたは、テンプレートにコンテキストにインポートしていますか? (例: {%from 'admin/lib.html' render_form、render_field、render_form_fieldsとコンテキスト%}) – rll
この例では、インポートはありません。コンパイルされたテンプレートに対して 'render'が呼び出され、' test() 'が' env ['globals'] 'に追加されます。 – Shaun
j、kを関数に渡す必要があります。これらの変数はforブロックに対してローカルであり、グローバルコンテキストでは使用できません。 jは自明である。 ['{%set%}'がグローバルコンテキストに割り当てられないため、kはローカルです(https://github.com/pallets/jinja/issues/164)。 – approxiblue