私はwtformsフォームを持っています
class MyForm(Form):
names = SelectField('name', choices=[])
名前フィールドの選択肢は動的に構築され、ajax 呼び出しによってテンプレートにレンダリングされます。フォームを送信すると、「有効な選択ではありません」という例外が発生します。フォームで名前フィールドの選択を検証したくありません。検証を無効にするにはどうすればよいですか?
「フォームに選択を検証させたくない」とは、実際には「後で自分でやるつもりで、フォームが正しく行う能力を疑う」ことを意味していると思います。
しかし、あなたは運がいいです!既存のフォームをサブクラス化して、選択肢を動的に追加できます。
class MyForm(Form):
# other fields...
def some_handler(request):
name_choices = build_name_choices()
class RealForm(MyForm):
names = SelectField('name', choices=name_choices)
form = RealForm(request.GET)
form.validate()
これにより、フォームの検証メッセージとエラー メッセージを後で生成するメッセージとマージするという面倒な作業からも解放されます。