我有词典格式:
uri_dict :{
"152.2.3.4" : ["/v1/draft" , 2],
"172.31.13.12" : ["/v1/url" , 34]
}
我想在表格格式中的django模板中呈现这个:
{% for keys, value in url_dict.items %}
<tr border = 1px black>
<th>{{ keys }}</th>
<td> {{ value[0] }} </td> <!--requires value[0] but not working -->
<td>{{ value[1]}} </td> <!--not working -->
</tr>
{% endfor %}
请给我任何解决方案---如何在模板中迭代列表值? 如何迭代列表值
答案 0 :(得分:2)
有几个选择:
<td>{{ value.0 }}</td>
<td>{{ value.1 }}</td>
{% for item in value %}
<td>{{ item }}</td>
{% endfor}
我的评论(以及其后的其他答案)涵盖了这两个问题。对于长度为2的列表,您还可以:
<td>{{ value|first }}</td>
<td>{{ value|last }}</td>
答案 1 :(得分:1)
要访问django模板上的数组元素,必须将它们称为elem.attribute。
在您的情况下,value.0和value.1。
{% for keys, value in url_dict.items %}
<tr border = 1px black>
<th>{{ keys }}</th>
<td>{{ value.0 }}</td> <!--requires value[0] but not working -->
<td>{{ value.1 }}</td> <!--not working -->
</tr>
{% endfor %}
此页面可以为您提供帮助:How to access array elements in a Django template?
希望这有帮助,
答案 2 :(得分:1)
如果你在字典的每个值上只有两个项目,即列表,那么
{% for keys, value in url_dict.items %}
<tr border = 1px black>
<th>{{ keys }}</th>
<td> {{value.0}}</td>
<td> {{value.1}}</td>
</tr>
{% endfor %}
如果列表中可以有任意数量的项目,则只需为每个项目循环:
{% for keys, value in url_dict.items %}
<tr border = 1px black>
<th>{{ keys }}</th>
{% for eachval in value %}
<td> {{ eachval}}</td>
{% endfor %}
</tr>
{% endfor %}