10

私はwtformsフォームを持っています

class MyForm(Form):
    names = SelectField('name', choices=[])

名前フィールドの選択肢は動的に構築され、ajax 呼び出しによってテンプレートにレンダリングされます。フォームを送信すると、「有効な選択ではありません」という例外が発生します。フォームで名前フィールドの選択を検証したくありません。検証を無効にするにはどうすればよいですか?

4

3 に答える 3

0

「フォームに選択を検証させたくない」とは、実際には「後で自分でやるつもりで、フォームが正しく行う能力を疑う」ことを意味していると思います。

しかし、あなたは運がいいです!既存のフォームをサブクラス化して、選択肢を動的に追加できます。

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()

これにより、フォームの検証メッセージとエラー メッセージを後で生成するメッセージとマージするという面倒な作業からも解放されます。

于 2013-01-21T06:10:50.797 に答える