在 jinja2 模板中嵌套 for 循环
nested for loops in jinja2 template
我想通过 ansible playbook 解析带有 jinja2 模板的 yml 文件,并且无法获取带有嵌套 'for':[=13= 的内部数组(下例中的 'items') ]
有YML:
entities:
- name: entity1
desc: "entity 1 description"
items:
- desc: "item 11 description"
name: item11
- desc: "item 12 description"
name: item12
- name: entity2
desc: "entity 2 description"
items:
- desc: "item 21 description"
name: item2
有模板:
{% for i in entities %}
entity: {{ i.name }}
{% if i.desc is defined %} desc: {{ i.desc }} {% endif %}
{% if i.items is defined %}
items:
{% for j in i.items %}
- name: {{ j.name }}
- desc: {{ j.desc }}
{% endfor %}
{% endif %}
{% endfor %}
这行似乎不正确 ('builtin_function_or_method object is not iterable'):
{% for j in i.items %}
有没有办法遍历 'items' 数组?
items
是一个 function of a Python dict。要访问键 'items'
的值,请使用
{% for j in i['items'] %}
我想通过 ansible playbook 解析带有 jinja2 模板的 yml 文件,并且无法获取带有嵌套 'for':[=13= 的内部数组(下例中的 'items') ]
有YML:
entities:
- name: entity1
desc: "entity 1 description"
items:
- desc: "item 11 description"
name: item11
- desc: "item 12 description"
name: item12
- name: entity2
desc: "entity 2 description"
items:
- desc: "item 21 description"
name: item2
有模板:
{% for i in entities %}
entity: {{ i.name }}
{% if i.desc is defined %} desc: {{ i.desc }} {% endif %}
{% if i.items is defined %}
items:
{% for j in i.items %}
- name: {{ j.name }}
- desc: {{ j.desc }}
{% endfor %}
{% endif %}
{% endfor %}
这行似乎不正确 ('builtin_function_or_method object is not iterable'):
{% for j in i.items %}
有没有办法遍历 'items' 数组?
items
是一个 function of a Python dict。要访问键 'items'
的值,请使用
{% for j in i['items'] %}