Django模板访问字典键

Posted

技术标签:

【中文标题】Django模板访问字典键【英文标题】:Django template access dictionary key 【发布时间】:2021-04-10 00:29:03 【问题描述】:

目前我正在将一个包含多个键的字典从我的视图传递给 django 模板,第一个键包含一个包含所有想要的键的列表,我希望有一个嵌套循环在第一个键内循环,以便我可以访问在想要的键里面。

dict = 
"list1" = ["name1", "name5"]
"name1" = []
"name2" = []
"name3" = []
"name5" = []

在这种情况下,我只想访问 dict['name1'] 和 dict['name5'],在 Python 中我可以这样做:

for name in dict['list1']:
  for l in dict[name]:
    do things

我想知道我是否可以对 html 文件中的 django 模板做同样的事情

【问题讨论】:

"我只想访问 dict['name1'] 和 dict['name5']"。那么你应该只将它需要的东西而不是复杂的结构传递给模板。 @KlausD。上面只是一个例子,name2,name3,name4在其他场合会用到,但不会和name1和name5一样调用 为什么不创建一个更简单、因此对模板更友好的数据结构?数据处理应该在 Python 中进行,而不是在模板中。 @KlausD。所以在模板中,我希望有多个选择选项,每个选择标签包含多个选项标签,所以在上面的例子中,我有一个列表,其中包含我希望用户从中选择的不同类型的选择,以及每种类型的select 具有 select 类型具有的相应选项列表。这就是为什么我认为如果有办法在模板中做到这一点会更容易 【参考方案1】:

首先你会得到语法错误你不应该使用=你应该在字典中使用:并在每个键值对之后添加,

dict = 
"list1" : ["name1", "name5"],
"name1" : [],
"name2" : [],
"name3" : [],
"name5" : [],

【讨论】:

上面的代码只是一个例子,因为我不擅长用纯文本来解释,所以我认为有一个可见的代码来演示会更容易。 @LurkerDoge 我明白我说的是 Python 字典的规则

以上是关于Django模板访问字典键的主要内容,如果未能解决你的问题,请参考以下文章

在 django 模板中访问字典值

Django模板访问嵌套数据

如何在 Django 模板中访问字典列表

如何在 django 模板中访问字典值

在 django 模板中访问字典值

Django模板:从字典访问值列表