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 %}
我正在尝试从 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 %}