【发布时间】:2021-03-11 02:05:43
【问题描述】:
我有一个从flask render_template 发送的类似这样的数据
一个名为product_list的元组列表
[(22, '1', 'false'), (94, '2', 'true'), (95, '3', 'false'), (100, '4', 'false'), (101, '5', 'false'), (102, '6', 'false'), (103, '7', 'false'), (104, '8', 'false'), (105, '9', 'false'), (106, '10', 'false'), (120, '11', 'false'), (121, '12', 'false')]
基本上
元组中的第一项是“product_id”,第二项是“product_version”,第三项是“is_product_active”
我正在尝试在我的 html 上的 select 标记中呈现这些元组。
列表的排序方式使得列表中的第一项在下拉列表中被假定为selected,所以我尝试了这个
<select size="2" data-width="fit" style="line-height:2px">
<option value="{{product_list[0][0]}}" selected >Version: {{product_list[0][1]}}</option>
{% for product in product_list|slice:"1:" %}
<option value="{{product[0]}}">Version {{product[1]}}</option>
{% endfor %}
</select>
这不起作用,flask jinja 抛出错误说jinja2.exceptions.TemplateSyntaxError: expected token 'end of statement block', got 'string'
大部分来自product_list|slice:"1:"
我基本上将数组的第一项设置为选中,然后我尝试跳过数组中的第一项并简单地在下拉列表中添加其他项。
这样做的更简洁的方法是什么,它也有助于提高 html 代码的可读性。
【问题讨论】: