2011-08-30 21 views
2

장고 프레임 워크. HTML 양식. views.py 스크립트.폼 유효성 검사 및 MultiValueDictKeyError

나는 여러 개의 체크 박스가있는 양식을 가지고 있으며, 사용자는 zip 파일에서 어떤 파일을 다운로드 할 것인지 선택하는 체크 박스를 선택합니다. 모든 확인란을 선택하면 zip 파일이 만들어지고 확인란을 선택 취소 할 때마다 다운로드 할 수 있지만 다음 오류가 표시됩니다.

MultiValueDictKeyError at/qatools/debug/logs/ '로그'가 QueryDict에 없습니다 :

유효성 확인은 다음과 같습니다. 체크 박스가 체크되었는지 여부를 결정하고 쉘 스크립트를 호출하는 형식 그대로 0 또는 1을 할당합니다.

logs = 0 
    if request.POST.get & request.POST['logs'] == "on": 
     logs = 1 
+0

그것을 고정, 신경 쓰지 마 ..되어 있어야합니다 : 로그 = 0 경우 request.POST 및 request.POST [ '로그']에서 '로그'== "on": logs = 1 – smurf

+0

if 문을 처리하는 짧은 방법 :'if request.POST.get ('logs') == "on":'get'은 기본값으로 None이 될 함수입니다 if 열쇠는 존재하지 않습니다. [QueryDict 문서] (https://docs.djangoproject.com/en/1.3/ref/request-response/#django.http.QueryDict)를 참조하십시오. – eric

답변

3

이것은 POST에 체크되지 않은 체크 박스는 예상대로 '오프'의 값을 갖는다는 POST 값에 있지 존재하지 않습니다 ... HTML 양식과 표준 문제입니다. 그래서 당신은 존재를 확인해야합니다

logs = 0 
if request.POST.get and 'logs' in request.POST and request.POST['logs'] == "on": 
    logs = 1 
+0

그래, 알아 냈어! wouldnt는 나를 tho에게 대답하게했다. 어쨌든 답장을 보내 주셔서 감사합니다! – smurf

+1

답변을 수락해야합니다 ... –