2009-10-29 123 views
2

我想循環一個字典,特別是請求對象的元屬性。它是一個字典,但下面的代碼將它當作字符串列表來對待。我怎樣才能正確地做到這一點?Django模板for循環over request.META詞典

編輯:我發現,如果我用request.META.items替換request.META,這個工程,但爲什麼以下不工作?這不是一個字典嗎?

{% for a, b in request.META %} 
    {{ a }}: {{ b }} 
{% endfor %} 

收率(這縮短爲了簡潔):

G: D 
w: s 
R: U 
H: T 
G: N 
... 
L: S 
R: E 
H: T 
P: A 

鑑於:

{{request.META}} 

收率:

{'GDM_KEYBOARD_LAYOUT': 'us', 
'wsgi.multiprocess': False, 
'RUN_MAIN': 'true', 
'HTTP_COOKIE': 'sessionid=... 
... 
...6:*.spx=00;36:*.xspf=00;36:', 
'REMOTE_HOST': '', 
'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 
'PATH_INFO': u'/'} 

回答

3

嗯,這相當簡單。

request.META是一本字典,對吧?所以如果你對字典做一個for循環,你會得到它的密鑰。這就是你所得到的。由於鍵是字符串(在你的例子中)並且字符串可以被解壓縮,所以它們的第一和第二項(字符)被解壓到a和b中。

然而,字典的items方法產生2元組列表,每個元組分別解壓到a和b中。所以,就像你說的那樣,它「起作用」。

+0

對,因爲我不能在{}中使用括號括起{(a,b)中的request.META%}。謝謝。 – kzh 2009-10-29 21:00:09

7

與request.META更換request.META。項目的作品。