Тайм-аут отправки формы после сбоя проверки - PullRequest
0 голосов
/ 27 марта 2020

Flask приложение, работающее на Heroku, с python официанткой WSGI-сервером (то же самое с gunicorn).

В форме (WTforms + flask -wtforms) у меня есть поле даты. Когда я отправляю форму, в бэкэнде я проверяю дату в прошлом. Если это так, я добавляю сообщение об ошибке в поле формы (см. Код ниже).

Когда я отправляю форму с датой в прошлом, форма корректно перезагружается и ошибка подсвечивается. но если я изменю дату на правильную и отправлю снова, запрос истечет. Я сделал несколько тестов и проследил выполнение с ведением журнала, и он, кажется, застрял непосредственно перед возвратом (снова, см. Код ниже).

Код (упрощенно)

def edit_template(template_id):
    template = Template.query.get(int(template_id))
    form = TemplateForm(obj=template)

    if request.method == 'POST':
        valid = True
        if form.validate_on_submit():
            form.populate_obj(template)
            try:
                if form.start_date.data < pendulum.now():
                    form.start_date.errors = "The date is in the past"
                    valid = False
            except TypeError:
                # This is to catch when the date is left blank
                pass
            if valid:
                current_app.logger.debug('REALLY VALID')
                db.session.commit()
            else:
                flash('ERROR saving data', 'danger')

    current_app.logger.debug('READY TO RETURN')
    # It stucks here!!!   <-----------------------------------------------
    return render_template('/templates/template_edit.html',
                           form=form)

То есть я вижу строку ГОТОВ К ВОЗВРАТУ в журнале, но затем время вне (см. следующую картину). Но если я удаляю блок «попробовать / исключить», он снова работает.

enter image description here

Спасибо

...