Я пытаюсь разработать веб-сайт, где пользователь отвечает на форму, а веб-сайт обрабатывает форму, а затем отвечает новой версией той же формы. По какой-то причине я получаю следующую ошибку при второй попытке отправить форму:
werkzeug.exceptions.BadRequestKeyError: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand.
KeyError: 'name_0'
Этого не происходит при первой отправке. Если бы мне пришлось угадывать, это было бы потому, что при первой отправке формы это свежая копия, но когда я пытаюсь обработать ее во второй раз, она все равно как-то привязана к первой форме.
Вот упрощенная версия кода, который я использовал
def session():
form = RatingForm(request.form)
# first time form is submitted
if request.method == 'GET':
query_0 = request.args.get('exp_0')
query_1 = request.args.get('exp_1')
# SOME APPLICATION LOGIC
return render_template('results.html', session_id=session.id, \
data=data[0:5], badges=badges, form=form)
# subsequent times a form is served
elif request.method == 'POST':
name_0 = request.form['name_0']
name_1 = request.form['name_1']
session_id = request.form['session_id']
if not form.validate():
return "Input not properly validated.", 400
# SOME APPLICATION LOGIC
return render_template('results.html', session_id=session_id, \
data=data[0:5], badges=badges, form=form)