【问题标题】:Is there a way to access nested python dictionaries in django template without template tag or database query?有没有办法在没有模板标签或数据库查询的情况下访问 django 模板中的嵌套 python 字典?
【发布时间】:2021-05-10 22:57:02
【问题描述】:

不使用自定义模板标签或数据库查询 - 最好的方法是什么... ,有趣的事实):

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

【问题讨论】:

    标签: python django dictionary django-templates


    【解决方案1】:
    {% for date, persons in upcoming_meetings.items %} 
    <h4>{{ date }}</h4>
    <p>{{ persons.PersonOne }}</p>
    <p>{{ persons.PersonTwo }}</p>
    {% endfor %}
    

    您检索每个日期的值,然后以您想要的方式访问它。你可以做&lt;p&gt;{{ persons.PersonOne.Name }}&lt;/p&gt;,它会起作用的。

    编辑在@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 %}
    

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

    【讨论】:

    • 感谢您的回答。但是,问题明确给出了以下参数:“直到到达最终级别(姓名,职业,有趣的事实)之前没有明确调用任何键”,在这种情况下,人的名字将不断变化
    • @ChefJulian 已编辑答案,如果有效,请标记。
    猜你喜欢
    • 2011-03-27
    • 2021-06-04
    • 1970-01-01
    • 2021-05-01
    • 2018-01-05
    • 2018-12-15
    • 2014-02-26
    • 2011-04-11
    • 1970-01-01
    相关资源
    最近更新 更多