一个新手django模板问题,希望得到一些指示。
我正在传回一个字典来渲染到页面的html。字典的结构如下:
dic:{
"names":["name1", "name2", "name3"],
"names1":{
"addresses":["address1","address2","address3"],
"key2":[......]
......
}
"name2":{......}
}
如何访问内部词典?知道这些内部词典的键的唯一方法是从列表中,但我无法遍历键“names”指向的值,并使用该值作为获取另一个词典的键。我已经考虑过编写客户过滤器/标签但不确定如何继续。
答案 0 :(得分:1)
使用django docs中的items
:
{% for key, value in data.items %}
{{ key }}: {{ value }}
{% endfor %}
我用你的例子测试了它:
在模板中:
<ul>
{% for l1_key, l1_value in dic.items %}
<li>{{ l1_key }}:
<ul>
{% for l2_key, l2_value in l1_value.items %}
<li>{{ l2_key }}: {{ l2_value }}</li>
{% empty %}
<li>{{ l1_value }}</li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
这将输出如下内容:
- name2:
- address: [1, 2, 3]
- names:
- ['name1', 'name2', 'name3']
- names1:
- key2: [1, 2]
- addresses: ['address1', 'address2', 'address3']
项会返回由(键,值)
组成的元组列表我使用了这个dic(修复了你的例子中的小问题):
dic = {
"names":["name1", "name2", "name3"],
"names1":{
"addresses":["address1","address2","address3"],
"key2":[1,2]
},
"name2":{'address':[1,2,3]}
}