添加默认值后 Flask wtf-form 不验证?
Flask wtf-form not validating after I add default values?
添加 form.field.default = value
和 form.process()
后,Flask Wtf Form 不再在提交时验证
比如我的表格class,
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)
当我在 html 表单中添加默认选项时,表单将使用 default. However, my form no longer submits, best I can tell is that it adds a
selectedkeyword to an option
Val 1` 的选定值呈现。我对 html 进行了完整的比较,这就是我找到的全部内容。
您似乎需要处理 'GET' 请求中的表单。
if request.method == 'GET':
form.process()
然后一切正常。
添加 form.field.default = value
和 form.process()
比如我的表格class,
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)
当我在 html 表单中添加默认选项时,表单将使用 default. However, my form no longer submits, best I can tell is that it adds a
selectedkeyword to an option
Val 1` 的选定值呈现。我对 html 进行了完整的比较,这就是我找到的全部内容。
您似乎需要处理 'GET' 请求中的表单。
if request.method == 'GET':
form.process()
然后一切正常。