Django "for" 循环和 Python 字典问题
我在使用Django的模板循环标签遍历这个字典时遇到了一些问题:
这个字典确实已经成功传递到页面上,因为如果我只做:
{% for event in events %}
{{ event }}
{% endfor %}
它会输出1,2,3,但当我尝试使用{{ event.start }}时,它什么都不显示...
evs = {
"1": {
'start': '8:00:00',
'end': '9:00:00',
'name': 'test',
'description': 'test',
'image_url': 'http://test',
'channel_url': 'http://test',
},
"2": {
'start': '8:00:00',
'end': '9:00:00',
'name': 'test',
'description': 'test',
'image_url': 'http://test',
'channel_url': 'http://test',
},
"3": {
'start': '8:00:00',
'end': '9:00:00',
'name': 'test',
'description': 'test',
'image_url': 'http://test',
'channel_url': 'http://test',
}
}
这是我在模板中的Django代码:
{% for event in events %}
{{ event.end }}
{{ event.name }}
{{ event.description }}
{{ event.image_url }}
{{ event.channel_url }}
{% endfor %}
任何帮助都会非常感激!
谢谢
2 个回答
5
在你的情况下,event
始终是一个条目的关键字(也就是一个字符串),而不是对象本身,所以event.start
是无法使用的。
可以看看这个文档。你可以这样做:
{% for key, event in events.items %}
{{ event.end }}
{{ event.name }}
{{ event.description }}
{{ event.image_url }}
{{ event.channel_url }}
{% endfor %}
6
如果你只是遍历 events
,那么你其实是在遍历字典的键;你需要遍历字典的值:{% for event in events.values %}
!