1

次のようなテンプレートがあります。

{% extends 'master.html' %}
{% set myVar = true %}

...

{% block myBlock %}
    {% include '/includes/myinclude.html' %}
{% endblock %}

myVarインクルード内にアクセスできません。ただし、これを行うと:

{% block myBlock %}
    {% set myVar = myVar %}
    {% include '/includes/myinclude.html' %}
{% endblock %}

魔法のようにアクセス可能です。明らかに、変数を 2 つの異なる場所に設定する必要はありません。私は何を間違っているのですか、それともこれはJinja2が行う愚かなことですか?

4

1 に答える 1

1

次のように、スコープをブロックに追加する必要があると思います。

{% block myBlock scoped %}
    {% include '/includes/myinclude.html' %}
{% endblock %}

ドキュメントから:デフォルトブロックごとに、外部スコープから変数にアクセスできない場合があります。

于 2012-11-21T01:00:11.503 に答える