Django“for”循环和python字典问题

时间:2010-09-04 11:21:35

标签: python django

我有几个问题让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 个答案:

答案 0 :(得分:6)

如果你只是迭代events,你只是在迭代dictonary的键;你需要迭代字典的值:{% for event in events.values %}

答案 1 :(得分:5)

嗯,在你的情况下,event始终是一个条目(它是一个字符串)的关键,而不是对象本身,所以event.start无法工作。

查看documentation。你可以这样做:

{% for key, event in events.items %}
        {{ event.end }}
        {{ event.name }}
        {{ event.description }}
        {{ event.image_url }}
        {{ event.channel_url }}
{% endfor %}