在Django模板中的另一个字典中迭代一个键的字典

时间:2015-07-09 15:22:29

标签: python django dictionary django-templates

我有一个如下所示的字典:

timeTables = {
        'today': {'date_start': datetime.now(), 'date_end': None},
        'yesterday': {'date_start': (datetime.now() - timedelta(days=1)), 'date_end': None},
        'week': {'date_start': (datetime.now() - timedelta(weeks=1)), 'date_end': datetime.now()},
        'month': {'date_start': (datetime.now() - timedelta(days=30)), 'date_end': datetime.now()},
    }

我想在Django模板中的for循环中输出today个键字典元素。

我可以通过以下方式在普通Python中完成此任务:

for key, value in timeTables['today'].items():
        print key, value

但是同样的事情在Django模板中不起作用。

这样做会出错:

{% for key, value in data['today'].items %}
    {{ key }} {{ value }}
{% endfor %}

TemplateSyntaxError at /
Could not parse the remainder: '['today'].items' from 'data['today'].items'

2 个答案:

答案 0 :(得分:1)

在Django模板中,您无法使用data['today']语法来访问词典的值,您需要使用.data.today):

{% for key, value in data.today.items %}
    {{ key }} {{ value }}
{% endfor %}

答案 1 :(得分:0)

试试这个: 如果你只想要字典字段只有'今天'然后只需从视图{'数据'数据['今天']}发送数据['今天'],然后将其呈现为:

{% for key, value in data.items %}
    {{ key }} {{ value }}
{% endfor %}

如果您想要发送整本词典,

{% for key, value in data.items %}
    {% for k,v in value.items %}
     {{k}} {{v}}
    {% endfor %}
{% endfor %}