フォームを使用して投稿リクエストからデータを取得していますが、私はよく慣れていない動作に気付きました。私は私のフォームの下に2つのバージョンがあります。唯一の違いは、フォームの2番目のバージョンでは、変数名にアンダースコアがあることです。アンダースコアのフォームフィールドは機能しません
class EditTitleForm(Form):
newTitle = StringField('newTitle')
currentTitle = StringField('currentTitle')
class EditTitleForm(Form):
new_title = StringField('newTitle')
current_title = StringField('currentTitle')
しかし
、私はprint(form.new_title.data)
を試してみて、print(form.current_title.data)
私は空行を取得しますが、私はアンダースコアなしのバージョンにフォームを切り替えると、すべてが正常に出力します。何故ですか?
@auth.route('/edit_title', methods=['POST'])
def edit_title():
data = MultiDict(mapping=request.json)
print(data)
form = EditTitleForm(data)
print(form.newTitle.data)
print(form.currentTitle.data)
これはWTFormsなのでしょうか? WTFormsの場合、アンダースコアフォームが機能するはずです(例:http://wtforms.readthedocs.io/en/latest/forms.html#defining-forms)。バグを報告する必要があります。 – jonrsharpe
はいWTForms – Brosef
JSONオブジェクトのキーも変更しましたか?ラベルを設定しても、各フィールドに読み込まれる内容には影響しません。興味深い。 – davidism