2012-08-15 117 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模板可以映射。否則,它不會在其名稱空間中找到標識符(如您所知)。

希望它有幫助。