我想在contextfunction中访问jinja2宏命名空间中的变量。说我的宏看起来像:
{% macro show_var(a) %}
{{ show_var_context_function("a") }}
{% endmacro %}
我的上下文功能如下:
@contextfunction
def show_var_context_function(context, var_name_string):
return context[var_name_string]
现在我认为上下文应该可以访问...这应该存储在我想的上下文中,但是上面的代码会引发一个NameError,说它不是在上下文中定义的。我想知道这是因为上下文应该是模板的上下文而不是宏?
无论如何,有没有办法访问宏的上下文?
答案 0 :(得分:0)
听起来您想从宏命名空间中访问全局Jinja上下文。为此,必须将宏“带有上下文”导入每个模板。
{% from "_macros.html" import my_macro with context %}