1

wtformsのカスタム検証を記述しているときに、追加の引数(リクエストなど)を渡すことは可能ですか?

例えば

class MyForm(Form):
  name = TextField('Name', [Required()])

  def validate_name(form, field):
    if len(field.data) > 50:
        raise ValidationError('Name must be less than 50 characters')

可能であれば、validate_nameメソッドにリクエストオブジェクト(または非フォームオブジェクト)を渡す必要があります。それを行う方法はありますか?

4

1 に答える 1

5

request続行する簡単な方法は、オブジェクトをフォームに渡し、それを属性として保存することです。

__init__これは、メソッドを介して、またはを実行することで実行できますmy_form.request = request

次に、メソッドはatに validate_nameアクセスできます。requestself.request

于 2013-01-09T16:57:45.633 に答える