我有一个全局函数test
from jinja2.utils import contextfunction
@contextfunction
def test(context):
context.get_all()
在我的测试中,我这样调用它......
{% set i = 0 %}
{% for j in range(0, 10) %}
{% set k = 0 %}
{{ test() }}
{% endfor %}
在 test
的 context
中结束的唯一变量是 i
。 j
和 k
是“不可读的”。除了将它们传递给 test(j, k)
最佳答案
根据 github issue with a similar concern ,您定义为 j
和 k
的变量是在本地设置的,而不是全局设置的。您尝试调用的函数将无法识别变量 k
,除非您将它传递给该函数。这是记录在案的行为。
相关的stackoverflow问题:
Can a Jinja variable's scope extend beyond in an inner block?
关于python - 全局函数中的 Jinja2 框架变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40616807/