Колба wtf-формы не проверяется после добавления значений по умолчанию? - PullRequest
0 голосов
/ 08 декабря 2018

Форма Flask Wtf больше не проверяется при отправке после добавления form.field.default = value, а затем form.process()

Например, мой класс формы,

class SelectFoo(FlaskForm):
    var1 = SelectField('Var 1')
    var2 = SelectField('Var 2')
    var3 = SelectField('Var 3')

Мой маршрут,

@route.route('/foo-input', methods=['GET', 'POST'])
def foo_route():
    form = SelectFoo()
    df = pd.Dataframe({'var_1': np.random.rand(10), 'var_2': np.random.rand(10), 'var_3': np.random.rand(10)})
    choices = [(s, s.replace('_', ' ').title()) for s in df.columns]
    fuzzy_lookup = compare_lists(target, cols)
    print(fuzzy_lookup) # for this test use {i:i for i in df.columns}
    print(choices)

    form.val1.choices = choices
    form.val2.choices = choices
    form.val2.choices = choices

    if form.validate_on_submit():
        dict_ = {
            'var 1': form.var1.data,
            'var 2': form.var2.data,
            'var 3': form.var2.data,
        }
        return jsonify(dict_)
    return render_template('footemplate.html', form=form)

Если я добавлю,

@route.route('/foo-input', methods=['GET', 'POST'])
def foo_route():
    ...
    form.coupon.choices = choices

    form.val1.default = fuzzy_lookup['val1']
    form.val2.default = fuzzy_lookup['val2']
    form.val2.default = fuzzy_lookup['val2']
    form.process()

    ...
        return jsonify(dict_)
    return render_template('footemplate.html', form=form)

Форма будет отображаться с выбранным значением, с default. However, my form no longer submits, best I can tell is that it adds a selected keyword to an option Val 1`, когда я добавлю параметр по умолчанию в мою HTML-форму.Я сделал полный анализ HTML, и это все, что я нашел.

1 Ответ

0 голосов
/ 08 декабря 2018

Похоже, вам нужно обработать форму в запросе 'GET'.

if request.method == 'GET':
    form.process()

Тогда все работает нормально.

...