0

我有以下“示例”字典

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

有没有办法做到这一点?

4

1 回答 1

0

我认为没有办法使用 Django 模板来做到这一点,你应该按照我在评论中所说的去做,我将在这里重写——并进行一些编辑——以总结漏洞。

--

也许你只是把事情复杂化了。如果您只需要这 3 个字典,我会将它们单独添加到我的上下文字典中,并在模板中独立使用它们。

正如我所说,您还可以遍历它们:

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

此外,如果 'objX' 是字符串,您的最后一个示例将起作用,因为 django 模板可以映射它。否则,它将根本无法在其命名空间中找到标识符(正如您所意识到的)。

希望能帮助到你。

于 2012-08-15T20:20:21.097 回答