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

Iterate over one key's dictionary in another dictionary in a Django template

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

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'

试试这个: 如果你只想要只有 'today' 键的字典字段,那么只需从视图 {'data': data['today']} 发送 data['today'] ,然后像这样渲染它:

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

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

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