我正在使用以下自定义表单验证器来确保correct
通过 InlineFormSet 提交给我的应用程序的条目不超过一个。
class BaseAnswerFormSet(forms.models.BaseInlineFormSet):
def clean(self):
if any(self.errors):
return
if len([d['correct'] for d in self.forms if d['correct'].value()]) !=1:
raise forms.ValidationError("There must be one and only one correct answer")
return
这是有效的,因为呈现的表单对象将False
在评估为时返回,.is_clean()
但没有返回错误。这是我pdb
在处理 的视图中使用时显示的内容POST
:
(Pdb) answerformset.is_valid()
False
(Pdb) answerformset.errors
[{}, {}, {}]
不应该raise forms.ValidationError("There must be one...
创建一个错误条目吗?我知道answerformset.errors
列表中的每个空字典都是针对每个答案形式的,但我认为会有一个non_field_error
或类似的东西?
如何让这个干净的函数返回可以在模板中显示的错误?如何向其中添加 non_field_error?