Jinja2中的访问全局变量包括

时间:2012-11-20 23:15:35

标签: templates jinja2

我有一个这样的模板:

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

...

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

我无法访问我的include中的myVar。但是,如果我这样做:

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

神奇地说,它是可以访问的。显然我不想在两个不同的地方设置我的变量。我做错了什么,或者这只是Jinja2的愚蠢行为?

1 个答案:

答案 0 :(得分:1)

我认为您必须在块中添加作用域,例如:

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

从doc:per default blocks可能无法访问外部作用域中的变量。