Flask: использование WTForm на другой странице, отличной от той, которая отображает саму форму - PullRequest
0 голосов
/ 02 сентября 2018

У меня есть следующие настройки:

Страница рендеринга:

@app.route('/one', methods=['GET'])
def one():
    form = AnyForm()
    return render_template(
        'form.html', form=form
    )

Шаблон (раздетый до основного):

{{ wtf.quick_form(form, action=url_for('two')) }}

Маршрут / функция, включая логику

@app.route('/two', methods=['POST'])
def two(form):
    print('FORMDATA: ' + form)
    return redirect(url_for('one'))

Ошибка:

TypeError: two() missing 1 required positional argument: 'form'

Как мне справиться с этим?

1 Ответ

0 голосов
/ 02 сентября 2018

Вы должны определить форму в functuin two и заполнить ее из почтового запроса, который получает функция, таким образом, вам не нужно получать какой-либо аргумент

попробуйте это:

@app.route('/two', methods=['POST'])
def two():
    form = AnyForm(request.form)
    print('FORMDATA: ' + form)
    return redirect(url_for('one'))

и, как вы пытались, вы должны дать своей url_for функции аргумент формы, подобный этому

{{ wtf.quick_form(form, action=url_for('two', form=form)) }}

Я не уверен, что это работает

...