Ситуация следующая, имеется одна страничка на которой располагается сгенерированная WTForm
Класс формы
class Users_cl(FlaskForm): name = StringField('name', [validators.DataRequired(), validators.Length(min=1, max=13, message='Имя не более 13 символов')]) codename = StringField('codename', validators = [DataRequired()])
На главную страничку помещаю эту форму и делаю просмотр
@app.route("/", methods=['GET','POST']) @app.route("/index", methods=['GET','POST']) def index(): form = User_cl() return render_template('index.html', form=form)
На HTML передаются параметры и форма рисуется, все нормально.
Но на форме так же есть кнопка для добавления в базу.
Вот обработка кнопки
@app.route("/add_user", methods=['POST']) def add_user(): form = User_cl(request.form) if form.validate_on_submit(): user_to_db = User_db_cl( name=form.name.data, codename=form.codename.data) db.session.add(user_to_db) db.session.commit() return redirect(url_for('index')) else: return redirect(url_for('index',form=form)) #тут кроется основная проблема
Данные в базу попадают, все работает.
Проблема начинается когда мне из /add_user нужно передать информацию на /index, а точнее форму т.к. мне нужно прочитать form.errors для полей и обработать их.
Тут такое наблюдение если делать через:
return render_template('index.html', form=form)
Поэтому думал передавать через redirect и url_for:
return redirect(url_for('index',form=form))
Как быть в этой ситуации? как обычно делают при передаче параметров в рамках одной страницы.
Спасибо за полезную информацию.