我有一个全局函数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 %}
context
中test
中唯一的变量是i
。 j
和k
“不可读”。有没有办法访问它们而不是将它们传递到test(j, k)
答案 0 :(得分:2)
根据github issue with a similar concern,您定义为j
和k
的变量是在本地设置的,而不是全局设置的。您尝试调用的函数将无法识别变量k
,除非您将其传递给函数。这是记录在案的行为。
相关的stackoverflow问题:
Can a Jinja variable's scope extend beyond in an inner block?