代码之家  ›  专栏  ›  技术社区  ›  kzh

用于Loop over Request.meta字典的Django模板

  •  2
  • kzh  · 技术社区  · 15 年前

    我试图循环一个字典,特别是请求对象的元属性。它是一个字典,但下面的代码将其视为字符串列表。我怎样才能正确地做到这一点?

    编辑:我发现如果我用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 回复  |  直到 15 年前
        1
  •  3
  •   shylent    15 年前

    很简单。

    request.meta是一本字典,对吧?所以如果你在听写上做for循环,你会得到它的键。这就是你得到的。而且,由于键是字符串(在您的示例中),字符串可以解包,因此它们的第一和第二项(字符)可以解包到A和B中。

    这个 items 然而,字典的方法生成一个2元组的列表,每个元组分别解包到A和B中。所以,正如你所说,它“起作用”。

        2
  •  7
  •   kzh    15 年前

    将request.meta替换为request.meta.items有效。