在 django 中,我有代码可以动态禁用复选框,因为取消选中它会触发一些对象删除。如果我的对象不应该被删除,复选框会被禁用,并且不会被提交。
但是,在视图中,我无法区分提交为 false 的复选框和未提交的复选框,因为 form.cleaned_data 仍然包含键“is_user”。
表格.py
if somecondition:
self.fields["is_user"].widget.attrs['disabled'] = True
视图.py
if "is_user" in form.cleaned_data:
if form.cleaned_data["is_user"] == False:
do dangerous deleting
return redirect(page)
elif form.cleaned_data["is_user"] == True:
process information
return redirect(page)
else:
return redirect(page)
我从复选框禁用状态提交表单,然后在 pdb shell 中输入:
(pdb) form.cleaned_data
{'is_user': False}
我曾期望 form.cleaned_data 不包含未提交字段的键。我如何检测它是否未提交,而不是未检查提交?