我有这样的字典:
myDict = {key1: item1,
key2: item2}
如何通过在django模板中提供 key1 来获取 item1 ,如果我有这样的嵌套字典,我该怎么办?
myDict2 = {key1: {key11: item11,
key12: item12},
key2: {key21: item21,
key22: item22}}
例如,如何使用item22
key22
我知道{{ myDict[key1] }}
无法正常工作
答案 0 :(得分:2)
简短的回答是查看Django template how to look up a dictionary value with a variable处的解决方案,然后应用过滤器两次。
table += '<tr><td>{0}</td><td>{1}</td></tr>'% format(str(key)),
format(str(value))
TypeError: not all arguments converted during string formatting
更长的答案(从我所链接的答案中大量采取)是:
{{ myDict2|get_item:"key2"|get_item:"key22"}}
from django.template.defaulttags import register
@register.filter
def get_item(dictionary, key):
return dictionary.get(key)
TEMPLATES = [
{
...
'OPTIONS': {
'context_processors': [
],
'libraries': {
'custom_tags':'YOURAPP.template_tags.custom_tags'
}
},
},
]
答案 1 :(得分:1)
通常在模板中迭代dict ......就像这样...
{% for key, value in harvest_data.items %}
{{ key }} <br>
{% for key2,value2 in value.items %}
{{ key2 }} <br>
{% for key3, value3 in value2.items %}
{{ key3 }}:{{ value3 }} <br>
{% endfor %}
{% endfor %}
{% endfor %}
关于模板中嵌套的dict渲染,我认为这是在这里回答的