Django"for"循环和python字典问题

kro*_*ron 2 python django

我有几个问题让循环标记的django模板通过这个字典:

它肯定被传递到页面,好像我只是做:

{% for event in events %}
   {{ event }} 
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

它写了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',
        }

    }
Run Code Online (Sandbox Code Playgroud)

这是我在模板中的django代码:

    {% for event in events %}
            {{ event.end }}
            {{ event.name }}
            {{ event.description }}
            {{ event.image_url }}
            {{ event.channel_url }}
    {% endfor %}
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激!

谢谢

Ber*_*ant 6

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


Fel*_*ing 5

那么,在你的情况下,event总是一个条目的键(这是一个字符串),而不是对象本身,所以event.start不能工作.

看看文档.你可以这样做:

{% for key, event in events.items %}
        {{ event.end }}
        {{ event.name }}
        {{ event.description }}
        {{ event.image_url }}
        {{ event.channel_url }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

  • 如果事件是字典,则此语法不起作用.您需要{%for key,event in events.items%} (2认同)