Задачи Django для цикла for и словарь Python - PullRequest
2 голосов
/ 04 сентября 2010

У меня возникла пара проблем при получении шаблонов цикла 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 ]

6 голосов
/ 04 сентября 2010

Если вы просто перебираете events, вы просто перебираете ключи диктонара; вам нужно перебрать значения словаря: {% for event in events.values %}!

5 голосов
/ 04 сентября 2010

Ну, в вашем случае, event - это всегда ключ одной записи (которая является строкой), а не сам объект, поэтому event.start не может работать.

Посмотрите документацию . Вы могли бы сделать:

{% for key, event in events.items %}
        {{ event.end }}
        {{ event.name }}
        {{ event.description }}
        {{ event.image_url }}
        {{ event.channel_url }}
{% endfor %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...