2012-02-16 5 views
0

실패하는 것은 django-장고 request.GET [] 문자열 비교는 여기

dir = '' 
    if (''+request.GET['dir']) == 'U': 
     dir = 'U' 
     elif (''+request.GET['dir']) == 'D': 
     dir = 'D' 

에서보기 기능에서 내 코드입니다하지만 확인하면 디렉토리 == 'D'또는 디렉토리 == 'U 경우 '이면 비교가 실패합니다. 예를 들면. 코드를 다음 것은 내가 디렉토리는 'U'또는 'D'로 설정되지 않은 느낌이

if dir == 'D': 
     user_voted.vote = 'D' 
     obj.score -= 2 
     user_voted.save() 
     obj.save() 

('U'와 비교 동일) 실패합니다. 나는 심지어 dir = request.GET [ 'dir']을 설정하려고 시도했는데 'U'또는 'D'로 설정해야하지만 비교는 여전히 실패합니다. 아무도 말해 줄 수 request.GET 아닌 문자열 또는 char 비교 문자열이 원인이 반환됩니다 또는 내가 잘못 또는 무엇을 설정 해요.

감사합니다.

+1

당신은 값이 무엇인지 인쇄 할 수 ? 정보가 충분하지 않습니다. – jterrace

+0

이 '' '+ request.GET ['dir ']'패턴의 요점은 무엇입니까? –

+0

Daniel, dir = request.GET [ 'dir'] – Eternity

답변

0

왜 문자열을 연결하고 변수를 재 지정하는지 잘 모르겠습니다. 그것을 단순화보십시오 :

dir = request.GET.get('dir', None) 
if dir == "U": 
    ... 
elif dir =="D": 
    ... 

을 그 그래도 작동하지 않는다면, 실제로이 있는지 확인하기 위해 request.GET 사전을 인쇄하려고 dir 매개 변수가 전달되는 (이 있어야한다)

+0

Pastylegs, 나도 해봤지만 여전히 작동하지 않으며 요청 URL이 "GET/vote /? id = 1 & type = link & dir = D'HTTP/1.1"이므로 해당 디렉토리가 get 요청에서 올바르게 설정하십시오. 'dir =='U '또는 dir =='D '의 코드는 절대로 실행되지 않습니다. – Eternity