【发布时间】:2010-12-25 20:23:40
【问题描述】:
这看起来很傻,但我不明白 Django 模板如何访问上下文中的嵌套数据。我可以访问嵌套在上下文数据结构中的字典的值。符号——{{ aDictionary.i_am_a_key }} 工作正常。但是如果我尝试遍历一个键列表并从同一个字典中获取它们的值,我什么也得不到。所以
{% for key in keys_list %}{{ aDictionary.key }}{% endfor}}
只生成空白。
我在这里缺少什么? Django 不支持即时访问上下文字典吗?我需要编写自定义标签来执行此操作吗?
编辑
我的示例假设这些数据结构:
aDictionary = {'i_am_a_key': 'all good', 'i_am_another_key': 'okay'}
keys_list = ['i_am_a_key', 'i_am_another_key']
【问题讨论】:
-
aDictionary是否有像'i_am_a_key'这样的键 - 即i_am_a_key是您的模板可以访问的变量的名称,还是字符串文字?如果它是字符串文字,那么这就是您的区别,因为key是存储您的密钥的变量的名称。 -
为什么要围绕键进行迭代?是什么阻止您简单地遍历字典本身?
-
因为我想在不改变传递给模板的数据结构的情况下改变数据检索的键。而且我更容易确保通过使用映射结构来检索正确的值,而不是确保所有值都以正确的顺序存储在列表或元组中。