2012-11-20 67 views
0

我有一个模板,像这样:访问全局变量包括:

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

... 

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

我无法访问myVar我包括内。但是,如果我这样做:

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

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

回答

0

我认为你必须添加作用域为块,如:

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

从DOC:每块默认情况下可能无法从外部范围内访问变量。

+0

嗯..没有工作:\ \ – Jason