我从Python应用程序收到一个列表(categories
),我迭代了一下。我想基于此列表中的输入定义一个变量,将其与一个字符串连接起来并将其用于进一步的循环。连接后,atom_type
的字符串文字引用应用程序中的另一个列表。
{% for c in categories %}
{% set atom_type = 'atoms_' + c %}
{% for atom in atom_type %}
{% endfor %}
{% endfor %}
问题是,在第二个for循环中atom_type
被视为一个字符串,而不是一个对象。你如何使用atom_type
变量来引用一个对象(python列表)?
答案 0 :(得分:1)
您可以将类别构建为dicts列表,将它们传递给模板并使用groupby()过滤器:
<ul>
{% for atoms in categories|groupby('atom_type') %}
<li>{{ group.grouper }}<ul>
{% for atom in group.list %}
<li>{{ atom.name }} {{ atom.weight }}</li>
{% endfor %}</ul></li>
{% endfor %}
</ul>