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 %}

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

4

1 回答 1

1

我认为您必须将范围添加到块中,例如:

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

来自文档:每个默认块可能无法从外部范围访问变量。

于 2012-11-21T01:00:11.503 回答