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 を追加するにはどうすればよいですか?