パスワード変更フォームを作成していて、検証のために元のパスワードをフォームに渡したいのですが、それを行う唯一の方法は、非表示フィールドにして残りのデータと一緒に渡すことです。私は明らかにそれをしたくありません。ビュー内からフォームコンストラクターに渡すだけですが、フォームデータと一緒に渡されない場合、それは機能しません。
class MyForm(Form):
...
original_password = HiddenField()
...
def validate_current_password(form, field):
if field.data != form.original_password.data:
ERROR
form = MyForm(request.POST, original_password=password)
request.POST が空でない限り、またはフォームで元のパスワードを実際にレンダリングして送信しない限り、機能しません。それ以外の場合、form.original_password.data は空です。