次の Jinja2 テンプレートがあります。
{% block body %}
{% for key in tree recursive %}
{% set outer_loop = loop %}
{% for subkey in tree[key] %}
{% if subkey == 'R' %}
{{ tree[key][subkey] }}
{% else %}
{{ outer_loop(dict([(subkey, tree[key][subkey])])) }}
{% endif %}
{% endfor %}
{% endfor %}
{% endblock body %}
はtree
、次のような Python 辞書です。
tree = {"A": {"R": [1, 2, 3], "B": {"R": [4, 5, 6]}}}
とPython ライブラリ関数dict()
です。
問題は、テンプレートが表示されるだけ[1, 2, 3]
で、期待どおりに表示されない[1, 2, 3][4, 5, 6]
ことです。
明らかに、Jinja で再帰がどのように機能するかについて、私は何かを誤解しています。ヒントはありますか?