繁体   English   中英

在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'

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

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

尝试以下操作:如果只希望字典字段仅带有'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 %}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM