基本上,我想要做的是让模板系统循环通过两个独立的列表来填充表的两列。我的方法是使用索引列表(numList)作为访问两个列表的相同索引的方法。我尝试在模板循环中使用点表示法进行列表索引查找,但它似乎在循环中不起作用。关于如何解决这个问题的任何想法?
numList = [0, 1, 2, 3]
placeList = ['park', 'store', 'home', 'school']
speakerList = ['bill', 'john', 'jake', 'tony']
<table>
<tr>
<th>Location</th>
<th>Time</th>
<th>Speaker</th>
</tr>
{% for num in numList %}
<tr>
<td>{{ placeList.num }}</td>
<td>1:30</td>
<td>{{ speakerList.num }}</td>
</tr>
{% endfor %}
</table>
答案 0 :(得分:5)
最简单的事情可能是在python中组合你的列表,然后只查看模板中的组合列表:
combinedList = [(placeList[i],speakerList[i]) for i in range(4)]
{% for entry in combinedList %}
<tr>
<td>{{ entry.0 }}</td>
<td>1:30</td>
<td>{{ entry.1 }}</td>
</tr>
{% endfor %}
或者对于透明度,您可以将combinedList设置为对象或词典列表,例如:
combinedList = [{'place':placeList[i],'speaker':speakerList[i]} for i in range(4)]
{% for entry in combinedList %}
<tr>
<td>{{ entry.place }}</td>
<td>1:30</td>
<td>{{ entry.speaker }}</td>
</tr>
{% endfor %}
答案 1 :(得分:0)
您可以将这两个列表合并为一个。
例如:
yourlist = [('park','bill'),('store','john'),('home','jake'),...]