我正在用jinja2做一个Web应用程序。而且我目前正在尝试使用数组中的元素配置HTML select元素。
数组中的每个元素可以是一个字符串,也可以是包含2个元素的数组:一个字符串和一个数字(即标识符)。
我想根据元素的类型采取不同的行动。这就是我尝试过的:
<select {{ "disabled" if Permission.WRITE not in field_permissions }} >
{% for e in field_data.enum %}
{% if e is iterable %}
<option value="{{ e[1] }}">{{ e[0] }}</option>
{% else %}
<option value="{{ loop.index - 1 }}">{{ e }}</option>
{% endif %}
{% endfor %}
</select>
但是永远不会执行“ else”条件,因为字符串元素似乎被标识为可迭代元素,所以我的单词被截断了:
您有解决方案可以帮助我吗? :)
谢谢
答案 0 :(得分:1)
您可以只检查e
是否为字符串:
<select {{ "disabled" if Permission.WRITE not in field_permissions }} >
{% for e in field_data.enum %}
{% if e is string %}
<option value="{{ loop.index - 1 }}">{{ e }}</option>
{% else %}
<option value="{{ e[1] }}">{{ e[0] }}</option>
{% endif %}
{% endfor %}
</select>