2010-09-04 2 views
2

У меня несколько вопросов, получая Джанго шаблонов для тега петли пройти через этот словарь:Джанго «для» задач цикла и словарь питона

Это, безусловно, передается на страницу ОК, как если бы я просто :

{% 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', 
     } 

    } 

и это мой Джанго код в шаблоне:

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

Любая помощь была бы действительно оценена!

Благодаря

ответ

6

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

+0

Большое вам спасибо! – kron

+1

@Ignacio: Я не верю, что ваш синтаксис будет работать. Это эквивалент событий ['event']. Start –

5

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

Посмотрите на documentation. Вы можете:

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

Если события являются словарем, этот синтаксис не работает. Вам нужно {% для ключа, событие в events.items%} –

+0

@Ned Batchelder: Ах правда ... Я просто копирую и вставляю из OP, но в документации это правильно ... стыдно за меня. Благодаря! –

Смежные вопросы