我正在使用jinja2,我正在硬时间将idx变量设置为forloop。似乎Jinja在说idx是数据记录中的一个键。是否有一种方法可以设置idx将被视为循环中的一个变化变量,而不是一个键。谢谢
更新
我只需要循环索引1-6,因为数据中的索引0在其他地方使用
如何在Python中将此代码转换为Jinja2
for idx in range(1,7):
print(report_rec.soundings.0.fuel_tank.idx.tank_no)
print(report_rec.soundings.0.fuel_tank.idx.length)
print(report_rec.soundings.0.fuel_tank.idx.volume)
数据示例
'soundings': [{
'pkey': '5f17a3f7c511d0b094326274',
'fuel_tank': [{
'tank_no': '1',
'length': '1',
'volume': 1.0,
}, {
'tank_no': '2',
'length': '2',
'volume': 2.0,
}, {
'tank_no': '3',
'length': '3',
'volume': 3.0,
}, {
'tank_no': '4',
'length': '4',
'volume': 4.0,
}, {
'tank_no': '5',
'length': '5',
'volume': 5.0,
}, {
'tank_no': '6',
'length': '6',
'volume': 6.0,
}, {
'tank_no': '7',
'length': '7',
'volume': 7.0,
}]
这是我的HTML代码
{% for idx in range(1,7) %}
<tr>
<td>Tank No</td>
<td><input name="ft_tank_{{idx}}" type="text" value="{{ report_rec.soundings.0.fuel_tank.idx.tank_no }}"></td>
<td>CM</td>
<td><input name="ft_length_{{idx}}" type="text" value="{{ report_rec.soundings.0.fuel_tank.idx.length }}"></td>
<td>Volume(ltr)</td>
<td><input name="ft_volume_{{idx}}" type="text"value="{{ report_rec.soundings.0.fuel_tank.idx.volume }}" ></td>
</tr>
{% endfor %}
可以使用
{{ loop.index }}
获取for循环中的索引鉴于这种结构
作为一种迭代坦克的方法,似乎效果更好
如果要忽略第一个油箱,可以利用Jinja2提供的特殊
loop
变量。(见here)相关问题 更多 >
编程相关推荐