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中。所以,就像你说的那样,它“起作用”。
答
与request.META更换request.META。项目的作品。
对,因为我不能在{}中使用括号括起{(a,b)中的request.META%}。谢谢。 – kzh 2009-10-29 21:00:09