【发布时间】:2012-12-06 08:30:38
【问题描述】:
如何为 Jinja2 宏处理额外的 args 和 kwargs?文档不是很清楚。
例如,这显然是错误的:
{% macro example_1(one, two, **kwargs) %}
do macro stuff
{% endmacro %}
导致
jinja2.exceptions.TemplateSyntaxError
TemplateSyntaxError: expected token 'name', got '**'
kwargs
类似于 varargs,但用于关键字参数。所有未使用的关键字参数都存储在此特殊变量中。
很遗憾,任何额外关键字参数的组合都是错误的,
{% macro example_2(one, two) %}
do macro stuff
{% endmacro %}
{{ example_2(one, two, test='test') }}
TypeError: macro 'example_2' takes no keyword keyword argument 'test'
我没有示例,也没有在 Jinja2 源代码 atm 中讨论。目前我还不清楚文档。任何想法表示赞赏。
【问题讨论】:
-
听起来它可能不支持任意关键字参数。也许例如
{% macro example_2(one, two, test=None) %}或类似的?