Templates 通过列表/字典传递Jinja2宏参数
我有一个具有多个参数的Jinja2宏。我想使用列表或字典设置这些参数,例如:Templates 通过列表/字典传递Jinja2宏参数,templates,macros,arguments,parameter-passing,jinja2,Templates,Macros,Arguments,Parameter Passing,Jinja2,我有一个具有多个参数的Jinja2宏。我想使用列表或字典设置这些参数,例如: {% macro mymacro(foo, bar) -%} foo: {{ foo }} bar: {{ bar }} {%- endmacro %} {% set args=[1, 2] %} {{ mymacro(args) }} 预期产出: foo: 1 bar: 2 但是,这不起作用,因为args中的列表被完全分配给foo,而bar保持为空 有没有办法做到这一点?只需使用将列表参数解包为参数即可。它
{% macro mymacro(foo, bar) -%}
foo: {{ foo }}
bar: {{ bar }}
{%- endmacro %}
{% set args=[1, 2] %}
{{ mymacro(args) }}
预期产出:
foo: 1
bar: 2
但是,这不起作用,因为args中的列表被完全分配给foo,而bar保持为空
有没有办法做到这一点?只需使用将列表参数解包为参数即可。它是一个python操作符,但显然Jinja2也支持它,尽管它没有文档记录
{% macro mymacro(foo, bar) -%}
foo: {{ foo }}
bar: {{ bar }}
{%- endmacro %}
{% set args=[1, 2] %}
{{ mymacro(*args) }}
只需使用将列表参数解压缩为参数。它是一个python操作符,但显然Jinja2也支持它,尽管它没有文档记录
{% macro mymacro(foo, bar) -%}
foo: {{ foo }}
bar: {{ bar }}
{%- endmacro %}
{% set args=[1, 2] %}
{{ mymacro(*args) }}