Очистить действительную форму после ее отправки

106
12

Я хочу reset форму после ее проверки. В настоящее время форма будет по-прежнему отображать предыдущие данные после ее отправки и действия. В принципе, я хочу, чтобы форма возвращалась в исходное состояние, при этом все поля были чистыми. Что правильно делать?


@mod.route('/', methods=['GET', 'POST'])
def home():
form = NewRegistration()

if form.validate_on_submit():
#save in db

flash(gettext(u'Thanks for the registration.'))

return render_template("users/registration.html", form=form)

спросил(а) 2021-01-19T17:23:05+03:00 2 месяца, 3 недели назад
1
Решение
143

Проблема в том, что вы всегда визуализируете форму с любыми данными, которые были переданы, даже если эти данные были проверены и обработаны. Кроме того, браузер сохраняет состояние последнего запроса, поэтому, если вы обновите страницу в этот момент, браузер повторно отправит форму.


После обработки успешного запроса формы переадресовывайтесь на страницу, чтобы получить новое состояние.

@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)

ответил(а) 2021-01-19T17:23:05+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема