我有一个这样的模板:
{% 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的愚蠢行为?
答案 0 :(得分:1)
我认为您必须在块中添加作用域,例如:
{% block myBlock scoped %}
{% include '/includes/myinclude.html' %}
{% endblock %}
从doc:per default blocks可能无法访问外部作用域中的变量。