Jinja2 中的块内块

Block within block in Jinja2

我正在尝试从 Pillar 获取一些变量并将变量作为键的名称传递以从 Pillar 获取,但似乎缺少某些内容。我尝试了一些组合,但 none 似乎有效。

在第一行 - 我正在获取密钥 - house_name 然后在第二行我想从 Pillar 动态获取该密钥的适当值。部分密钥是静态的 (homes:list),部分是动态的 (house_name)

{% for house_name in event_data.house_list|list %}
{% set home_def = salt['pillar.get']('homes:list:{{ house_name }}') %}
...
{% endfor %}

当我在第二行对 house_name 进行硬编码时 - 一切正常 - 这意味着使用命名空间呈现密钥时出现错误。我试过但对第二行不起作用的一些组合:

{% set home_def = salt['pillar.get']('homes:list:'{{ house_name }}) %}
{% set home_def = salt['pillar.get']("homes:list:{{ house_name }}") %}

您不需要在 set 语句中使用 {{}} 括号

{% for house_name in event_data.house_list|list %}
{% set home_def = salt['pillar.get']('homes:list:{}'.format(house_name)) %}
...
{% endfor %}