2009-10-29 4 views
2

사전, 특히 요청 객체의 메타 속성을 루프 처리하려고합니다. 사전이지만, 다음 코드는 문자열 목록처럼 취급합니다. 이 작업을 올바르게 수행하려면 어떻게해야합니까?Django 템플릿 For Loop Over request.META Dictionary

편집 : request.META.items로 request.META를 바꾸면 다음과 같이 작동하지만 왜 작동하지 않습니까? 그것은 딕트가 아닌가? request.META으로 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는 사전입니까? 그래서 만약 당신이 dict을 통해 for 루프를한다면 당신은 그 열쇠를 얻습니다. 그것이 당신이 얻는 것입니다. 그리고 키는 문자열이므로 (예를 들어) 문자열을 풀면 첫 번째 및 두 번째 항목 (문자)이 a 및 b에 압축이 풀립니다.

그러나 사전의 items 메소드는 2 튜플의 목록을 생성하며, 각 튜플은 각각 a 및 b에 압축을 해제합니다. 그래서, 당신이 말했듯이 그것은 "작동"합니다.

+0

괄호로 {(a, b)를 요청할 수 없기 때문에} 요청할 수 없습니다 .META %}. 감사. – kzh

7

:

{% 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}} 

산출한다. 항목이 작동합니다.