2015-08-11 26 views
5

Ich möchte das Formular zurücksetzen, nachdem es validiert wurde. Zurzeit zeigt das Formular noch die vorherigen Daten an, nachdem es gesendet und gültig ist. Grundsätzlich möchte ich, dass das Formular mit allen Feldern in den ursprünglichen Zustand zurückkehrt. Was ist richtig, dies zu tun?Löschen des gültigen Formulars nach dem Senden

Antwort

9

Das Problem ist, dass Sie das Formular immer mit den Daten rendern, die übergeben wurden, auch wenn diese Daten validiert wurden und verarbeitet wurden. Darüber hinaus speichert der Browser den Status der letzten Anforderung. Wenn Sie die Seite an dieser Stelle aktualisieren, wird der Browser das Formular erneut senden.

Nachdem eine erfolgreiche Formularanforderung bearbeitet wurde, wird auf die Seite umgeleitet, um einen neuen Status zu erhalten.

@app.route('/register', methods=['GET', 'POST']) 
def register(): 
    form = RegistrationForm() 

    if form.validate_on_submit(): 
     # do stuff with valid form 
     # then redirect to "end" the form 
     return redirect(url_for('register')) 

    # initial get or form didn't validate 
    return render_template('register.html', form=form) 
+0

Ich weiß nicht, warum, aber ich muss den Punkt ('.home') verwenden. Andernfalls werde ich BuildError (Endpunkt, Werte, Methode) – user455318

+2

@ user455318 auslösen, weil Ihre Route in einem Blueprint ist. Sie können auch das absolute 'blueprint_name.home' verwenden, das' .' ist nur eine Abkürzung für "current blueprint". – davidism

Verwandte Themen