【发布时间】:2018-04-20 16:10:06
【问题描述】:
我想创建一个宏,它需要跟踪它是否曾经被调用过。因此,我必须在宏的请求上下文中设置一个变量,但我不知道如何做到这一点。比如:
{% macro my_macro() -%}
{% set g.foo = "bar" %} <-- Error
{{ g.get('foo') }}
{%- endmacro %}
以上导致jinja2.exceptions.TemplateRuntimeError: cannot assign attribute on non-namespace object 错误。
我知道这可能是对宏观概念的滥用,并且也可以接受其他解决方案。我想跟踪宏的使用,所以我最多可以一次为宏输出一些所需的 javascript,或者如果没有使用宏,则根本不输出。
【问题讨论】: