【发布时间】:2019-06-17 17:11:25
【问题描述】:
我有一个 IP 地址列表。我还有一个嵌套字典,它使用这些地址作为键。例如:
my_list = ['1.2.3.4', '8.8.8.8']
my_dic = {'data': {'1.2.3.4': 'My First Data', '8.8.8.8': 'My Second Data'}}
在我的模板中,我正在尝试这样做:
for each in my_list:
print(my_dic['data'][each])
在我按下each 键之前,一切正常。因此,如果我只打印 my_dic 或 my_dic[data] 它将全部正常工作。但是当我添加 each 索引时,网页中没有任何显示
我已经独立打印了each,所以我知道它可以正常工作。
当我在 IDE 中运行循环时,这也可以按预期工作,所以我知道逻辑是正确的。
在 django 中,我的代码如下所示:
{% if my_dic.data %}
{% for each in my_list %}
<p>{{ my_dic.data.each }}</p>
{% endfor %}
{% endif %}
我是 Django 新手,所以不确定我是否忽略了一些愚蠢的事情。有人知道我在这里想念什么吗?
编辑 找到了一个重复的HERE,它涵盖了我的问题。 Vishnu Ks 指出了同样的问题。
【问题讨论】:
-
首先,您的
my_dicdict 有一些语法错误。是错字吗? -
尝试遍历字典——更不用说你使用变量键访问的嵌套字典了——在模板中使用 Django 有点痛苦。这不是您问题的答案,但我强烈建议您考虑在您的视图中执行此类逻辑,然后将处理后的列表传递给您的模板,以便更简单、更快速地处理。
-
除此之外,您不能创建/拥有具有相同键的字典 (
data) -
这是 dic 中的一个类型,我修复了它
-
@JPJ - 数据存在于数据下的字典中。那里只有一个数据键。
标签: django python-3.x loops django-templates