我想要做类似于这样的事情:
{% macro obj_type_1 %}
stuff
{% endmacro %}
{% macro obj_type_2 %}
stuff
{% endmacro %}
{{ (obj|get_type)(obj) }}
在这个例子中,
get_type
是一个过滤器,它将返回obj_type_1
或obj_type_2
--也就是调用obj
的宏的名称。我不想用配置输出标记obj
,因为现在obj
在几个模板中被用作结构数据,根据上下文以不同的标记呈现。我知道这里的语法有点复杂,但我认为这是因为我想做的事情在Jinja模板中不是立即可能的。我正在尝试用模板替换一些配置生成代码中的大量if/elif/else代码,但这部分似乎是个难点。
eval()
的方法? - Blender