Ich benutze ein Formular, um die Daten von einer Postanforderung zu erhalten, und ich bemerkte etwas Verhalten, das ich nicht kenne. Ich habe zwei Versionen meines Formulars unten gezeigt. Die einzige Variante ist, dass ich in der zweiten Version des Formulars einen Unterstrich in meinen Variablennamen habe.Formularfeld mit Unterstrich funktioniert nicht
class EditTitleForm(Form):
newTitle = StringField('newTitle')
currentTitle = StringField('currentTitle')
class EditTitleForm(Form):
new_title = StringField('newTitle')
current_title = StringField('currentTitle')
aber wenn ich versuche, print(form.new_title.data)
und print(form.current_title.data)
erhalte ich eine leere Zeile, aber wenn ich die Form auf die Version ohne den Unterstrichen wechseln, alles druckt gut. Warum das?
@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)
Ist das WTForms oder etwas anderes? Wenn es WTForms ist, sollte das Unterstreichungsformular funktionieren (siehe zum Beispiel http://wtforms.readthedocs.io/en/latest/forms.html#defining-forms) und Sie sollten einen Fehler melden. – jonrsharpe
Ja, es ist WTForms – Brosef
Haben Sie auch die Schlüssel im JSON-Objekt geändert? Das Festlegen der Beschriftungen hat keinen Einfluss darauf, was in jedes Feld geladen wird. – davidism