Django模板For循环请求.META字典

时间:2009-10-29 18:32:09

标签: django django-templates

我正在尝试遍历字典,特别是请求对象的元属性。它是一个字典,但下面的代码将它视为字符串列表。我怎么能正确地做到这一点?

编辑:我发现如果我用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'/'} 

2 个答案:

答案 0 :(得分:7)

用request.META.items替换request.META。

答案 1 :(得分:3)

嗯,这很简单。

请求.META是一本字典,对吧?因此,如果你在dict上执行for循环,你就得到它的键。这就是你得到的。由于键是字符串(在您的示例中)并且字符串可以解压缩,因此它们的第一个和第二个项目(字符)将解压缩到a和b中。

然而,

字典的items方法产生了一个2元组的列表,每个元组分别被解压缩到a和b中。所以,正如你所说,它“有效”。