我将dict传递给我的模板: -
a = {
1: {
'a': 'abc',
'b': 'def'
},
2: {
'a': 'ghi',
'b': 'jkl'
},
'order': [1,2]
}
现在我需要获取order
列表中存在的那些键的值。
在普通的python中我会做的事情如下: -
for id in a['order']:
print a[id]['a']
在django模板中它的等价物是什么?
这是我尝试过的。它没有工作
{% for id in a.order %}
{{a.id.a}}
{% endfor %}
答案 0 :(得分:3)
你必须创建一个简单的template filter来通过键名来获取dict中的项目:
#my_templatetags.py
from django.template.defaulttags import register
@register.filter
def get_item_by_key(dict, key):
return dict.get(key)
在您的模板中执行以下操作:
{% load my_templatetags %}
<ul>
{% for idx in a.order %}
{% with item=a|get_item_by_key:idx %}
<li>
{{ item.a }} - {{ item.b }}
</li>
{% endwith %}
{% endfor %}
</ul>