Django模板for循环over request.META词典

Django模板for循环over request.META词典

问题描述:

我想循环一个字典,特别是请求对象的元属性。它是一个字典,但下面的代码将它当作字符串列表来对待。我怎样才能正确地做到这一点?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'/'} 

嗯,这相当简单。

request.META是一本字典,对吧?所以如果你对字典做一个for循环,你会得到它的密钥。这就是你所得到的。由于键是字符串(在你的例子中)并且字符串可以被解压缩,所以它们的第一和第二项(字符)被解压到a和b中。

然而,字典的items方法产生2元组列表,每个元组分别解压到a和b中。所以,就像你说的那样,它“起作用”。

+0

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

与request.META更换request.META。项目的作品。