Задать вопрос
de-iure
@de-iure
just a crazy lawyer

Flask-wtf как сохранить значение в поле после его оправки?

есть простая форма (flask-wtf):

class Calck(FlaskForm):
    sum = StringField('Сумма (руб.)', validators=[DataRequired()])
    statement = RadioField('statement',
                           choices=[('value_1','Заявление 1'),
                                    ('value_2','Заявление 2')],
                                    default='value_1')
    submit = SubmitField('Рассчитать')


подскажите, можно ли сделать так, что после отправки значения формы и редиректа на эту же страницу, в поле sum автоматически подставлялось ранее введенное значение? знаю как сделать записав значение в БД и вызвав его от туда, но может есть способ без использования БД?
  • Вопрос задан
  • 563 просмотра
Подписаться 2 Простой Комментировать
Решения вопроса 1
de-iure
@de-iure Автор вопроса
just a crazy lawyer
Ну если кому интересно, кроме меня, решил это так: при создании экземпляра формы создается экземпляр класса хранилища, в атрибуты которого записываются значения введенные в поля формы и потом при отправке значений формы и редиректе на эту же страницу значения забираются из хранилища...

class Value_calc():
    def __init__(self):
        self.sum_data = ''
        self.statement_data = 'value_1'


from app.services.forms import Calck, Value_calc

@bp.route('/calc', methods=['GET', 'POST'])
def calc():
    form = Calck()
    data_form = Value_calc()                                 # экземпляр хранилища значений form
    calc_validate(form, data_form)
    return render_template('calc.html', form=form)

def calc_validate(form, data_form):
    if form.validate_on_submit():
        state_fee = form.gscalc_arbitr(form.sum.data, form.statement.data)
        flash(state_fee)
        data_form.sum_data = form.sum.data
        data_form.statement_data = form.statement.data
        return redirect(url_for('services.calc'))
    else:
        form.sum.data = data_form.sum_data
        form.statement.data = data_form.statement_data
    return form.sum.data, form.statement.data
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы