2011-03-07 59 views
16
t=[] 
t.append(("a",1)) 
t.append(("b",2)) 
t.append(("c",3)) 
return render_to_response(t.html, context_instance=RequestContext(request, {'t':t})) 

如果我想訪問接入在Django模板T的值,而無需使用for循環我該怎麼辦它。我曾嘗試以下,它似乎沒有工作訪問的元組

alert('{{t[a]}}'); 
    alert('{{t[c]}}'); 
+0

在你的代碼的Theres錯誤分配值到t 。目前它與TypeError失敗,所以我們不能確定t的真實結構是什麼,所以我們不能幫助你。複製粘貼您的視圖代碼以防止這些錯誤。 – 2011-03-07 12:02:51

+0

我已經糾正它 – Rajeev 2011-03-07 12:06:22

回答

32

假設你的視圖的代碼是:

t=[] 
t.extend([('a',1),('b',2),('c',3)]) 

(而不是如在OP說明)

{{ t.0.0 }}是像在Python代碼中使用t[0][0]。這應該給你「a」,因爲t.0是列表t的第一個元素,它本身是一個元組,然後另一個.0是元組的第一個元素。

{{ t.0.1 }}將爲1,依此類推。

但在你的問題中,你正在創建一個元組,並試圖訪問它,就像它是一個字典。

這就是問題所在。

+0

我們不能訪問鍵的值,即a,b,c? – Rajeev 2011-03-07 12:11:34

+0

你可以,但你必須做一個字典:t = {'a':1,'b':2,'c':3},那麼t.a應該可以工作。 – 2011-03-07 12:19:39

2

你可以把你的元組通過dict() function與dict:

mydict = dict(t) 

然後在模板中,您可以通過按鍵像here訪問項目:

{{ mydict|get_item:item.NAME }}