我有一个显示为表格的表单集,并且我不想验证没有选中特定复选框的任何表单。但是,提交表单集后,它们将得到验证。
我需要在clean_field()方法级别处理此问题吗?
如果是这样,我如何在此时停止表单,而不会使整个表单集无效?
class HILISForm(forms.ModelForm):
summary = forms.CharField(
widget=forms.Textarea(attrs={'rows':3, 'cols':70}),
label='',
required=False)
class Meta:
model = Report
fields = ('reported', 'summary', )
def clean_reported(self):
reported = self.cleaned_data['hilis']
if reported:
return(hilis_reported)
else:
raise(forms.ValidationError('Not checked...'))
如果我“通过”而不是引发错误-那么此表格仍会显示在我不希望的cleaned_dict中。
答案 0 :(得分:0)
我敢肯定有一种更容易,更干净的方法来执行此操作,但是如果遇到困难,可以通过为每个输入字段创建一个id,然后在视图中使用逻辑创建/保存对象来完成此操作代替。看起来您有很多事情需要检查,并不理想,但这是一种解决方法。
我对我的一个项目有一个棘手的验证方案,发现仅创建表单然后在发布后的视图中进行处理比较容易。您仍然可以将错误消息添加到表单中,也可以从视图中执行所有这些操作。