在dictionary Django模板中访问特定字典

2024-09-30 06:28:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的“示例”字典

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的值,我该如何在模板中进行迭代呢?在

我试过了

^{pr2}$

以及

{% 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

有办法吗?在


Tags: keyinnodea2forvaluea1b2
1条回答
网友
1楼 · 发布于 2024-09-30 06:28:24

我不认为有一种方法可以用Django模板做到这一点,您应该按照我在评论中所说的那样做,我将在这里重写,并对其进行一些编辑,以总结出漏洞问题。在

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

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

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

另外,如果“objX”是字符串,上一个示例也可以工作,因为django模板可以映射它。否则,它将无法在其名称空间中找到标识符(如您所知)。在

希望有帮助。在

相关问题 更多 >

    热门问题