访问字典中的特定字典 - Django模板

时间:2012-08-15 18:37:07

标签: python django django-templates

我有以下“示例”字典

myDict = {obj1:{key_a1:value_a1, key_a2:value_a2, key_a3:value_a3} , 
          obj2:{key_b1:value_b1, key_b2:value_b2, key_b3:value_b3} ,
          obj3:{key_c1:value_c1, key_c2:value_c2, key_c3:value_c3} }

obj是一些类对象。

如果我只想迭代属于关键字obj2的值,如何在模板中执行该操作会怎么样?

我试过

{% for node,manyResults in myDict[obj2].items %}
//Error: Could not parse the remainder: '[obj2].items' from 'dict[obj2].items'

{% for node,manyResults in myDict[obj2] %}
//Error: Could not parse the remainder: '[obj2]' from 'dict[obj2]'

{% for node,manyResults in myDict.obj2.items %}  
//OR
{% for node,manyResults in myDict.obj2 %}
//Both no error, but the values don't appear

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

我认为有一种方法可以用Django模板做到这一点,并且你应该像我在评论中所说的那样做,我将在这里重写 - 通过一些编辑 - 总结一下这个问题

-

也许你只是让事情复杂化。如果你需要这3个dicts,我会将它们separetelly添加到我的上下文dict并在模板中独立使用'。

你也可以像我说的那样迭代它们:

{% for key, item in myDict.items %}
    {% for innerkey, inneritem in item.items %}
        ...

另外,如果'objX'是字符串,那么你的最后一个例子就可以了,因为django模板可以映射它。否则,它根本就不会在其命名空间中找到标识符(如您所知)。

希望它有所帮助。