1

我有像这样的字典格式:

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 %} 

请为我提供任何解决方案---如何迭代模板中的列表值?如何迭代列表值

4

3 回答 3

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>
于 2013-09-02T16:23:38.820 回答
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 %} 

本页可能对您有所帮助:如何访问 Django 模板中的数组元素?

希望这可以帮助,

于 2013-09-02T16:20:49.860 回答
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 %} 
于 2013-09-02T16:22:17.880 回答