2012-08-15 77 views
0

我有以下的“榜样”字典访问特定的字典词典中 - Django模板

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是某个类的对象。

如果我只想遍历属于唯一的关键OBJ 2的值是什么,我将如何做到这一点的模板里面?

我已经试过

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

有没有办法做到这一点?

+0

只是让我明白了,你确实有文字模型实例作为重点?除了弦之外别紧紧抓住任何东西,否则你会以这种或那种方式在脚下射击。在这里,它是有对模板标签拔出钥匙上下文没有可能的方式,因为这将需要从字面上通过的情况下,你不能在模板做。 – 2012-08-15 18:55:17

+0

更具体地说,这是不是*太*多在Python普遍的问题,因为它是鸭打字,但像C++,Java等,那里的东西只有当它们指向恰好等于第一级语言同样的记忆,这样做会是灾难性的。仅仅因为Python有点松懈,并不意味着你应该使用劣质编程实践。 – 2012-08-15 18:58:36

+0

你使用的是什么django版本? – Francisco 2012-08-15 18:59:41

回答

0

我不认为这是与Django模板这样的一种方式,而且正如我在我的意见,我会在这里改写说你应该做的 - 一些修改 - 总结孔事向上。

-

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

您也可以在它们之间迭代,因为我说:

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

而且,如果“物objx”是字符串你最后的例子就是工作,因为Django模板可以映射。否则,它不会在其名称空间中找到标识符(如您所知)。

希望它有帮助。