在django中定义禁用选择框的键

时间:2012-01-25 15:07:36

标签: django forms

我有一个禁用了选择框的表单。我在UpdateForm()中有这个函数:

def clean_job(self):
    f = self.fields['job'].widget.attrs
    if f.has_key('disabled') and f['disabled'] == 'disabled' :
        return self.instance.job
    else:
        return self.cleaned_data['job']

但是在提交表单时出现此错误:Key 'job' not found in <QueryDict: 如何为禁用的选择框分配密钥?

提前致谢

1 个答案:

答案 0 :(得分:1)

您没有 向服务器发送job的内容。您 要做的事情是正确处理代码中的异常。如果该密钥不存在,直接在字典中访问密钥将导致错误,因此您根本不这样做。相反,在dict上使用get方法,或在这种情况下使用QueryDict

job = request.POST.get('job') # stores `None` if doesn't exist
if job is not None:
    # do something

或者您可以提供默认值:

job = request.POST.get('job', 'default job')