有没有办法在没有模板标签或数据库查询的情况下访问 django 模板中的嵌套 python 字典?

时间:2021-02-06 23:10:49

标签: python django dictionary django-templates

不使用自定义模板标签或数据库查询 - 最好的方法是什么......或任何方式在模板页面中显示以下dict值而不显式调用任何键,直到到达最终级别(名称,职业,有趣的事实):

upcoming_meetings = {

dateOne: {
    PersonOne:{
        Name:"valueOne",
        Profession:"valueTwo", 
        Fun_Fact:"valueThree"
    },
    PersonTwo:{
        Name:"valueOne",
        Profession:"valueTwo", 
        Fun_Fact:"valueThree"
    }
},
dateTwo: {
    PersonOne:{
        Name:"valueOne",
        Profession:"valueTwo", 
        Fun_Fact:"valueThree"
    },
    PersonTwo:{
        Name:"valueOne",
        Profession:"valueTwo", 
        Fun_Fact:"valueThree"
    }
}

}

我已经尝试了以下组合,但只得到了以格式化方式显示的“日期”级别以及显示为未过滤和未格式化的字典值的所有其他值。

{% for date, person in upcoming_meetings.items %} 
    <h4>{{ date }}</h4>
    <p>{{ person }}</p>
{% endfor %} 

1 个答案:

答案 0 :(得分:2)

{% for date, persons in upcoming_meetings.items %} 
<h4>{{ date }}</h4>
<p>{{ persons.PersonOne }}</p>
<p>{{ persons.PersonTwo }}</p>
{% endfor %}

您检索每个日期的值,然后以您想要的方式访问它。您可以执行 <p>{{ persons.PersonOne.Name }}</p> 并且它会起作用。

编辑 在@ChefJulian 评论说他不想显式调用每个键之后,想说编写这种级别的自动化没有意义,但如果您坚持,那就是回答。

{% for date, persons in upcoming_meetings.items %} 
<h4>{{ date }}</h4>
{% for k, v in persons.items %}
{% for k, v in v.items %}
<p>{{ k }} : {{ v }}</p>
{% endfor %}
{% endfor %}
{% endfor %}

这适用于每个日期和与之相关的每个人以及与该人相关的每个数据。