表单验证和MultiValueDictKeyError

时间:2011-08-30 13:40:23

标签: python django validation

Django框架。 Html表单。 views.py脚本。

我有一个包含多个复选框的表单,用户选择一个与他们想要在zip文件中下载的文件相对应的复选框。选中所有框后,会创建一个zip文件,但无论何时取消选中复选框,我都会下载错误:

/ qatools / debug / logs /中的MultiValueDictKeyError 在QueryDict中找不到密钥'logs':

我的验证如下。它确定是否已选中复选框,并以其调用shell脚本的格式指定0或1。

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

1 个答案:

答案 0 :(得分:3)

这是HTML表单的标准问题...在POST上,未选中的复选框将不会在POST值中存在,而是没有按预期的值“off”。所以你需要检查是否存在:

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