[英]Python flask WTForms custom validation - cant get data from form, is None
[英]Upgrade wtforms 0.6 to 1.0 Form TextField data None
我有一个flask / wtforms应用程序,我正在从wtforms 0.6.ish升级到1.0.5。 开发箱是使用wtforms 0.6的ubuntu,而产品将是使用wtforms 1.0.5的亚马逊ami。
为了所有人的利益,到目前为止,进行了以下更改:
从:
from flask.ext.wtf import Form, TextField
from flask.ext.wtf import Required
至:
from wtforms import Form, TextField, validators
从:
def index():
form=SubmitForm()
if form.validate_on_submit():
return render_template('js.html',ht=form.ht.data)
至:
def index():
form=SubmitForm
if request.method == 'POST' and form.validate():
return render_template('js.html',ht=form.ht.data)
也:
class SubmitForm(Form):
ht = TextField('ht', validators = [Required()])
class SubmitForm(Form):
ht = TextField('ht', [validators.Required()])
问题在于,在wtforms 1.0.5中,从未设置过形式变量“ ht”。 如果我尝试将其打印到控制台,则为“无”。 我尚未对模板进行任何更改。 我可以在该类中设置一个默认值,但不会被用户在表单上输入的内容代替。
在新的控制器中,您实际上并没有创建提交表单的实例(缺少括号)。 同样,您从Flask-WTForms扩展名切换到普通WTForms。 Flask-WTForms自动使用request.form
因此您不必-如果要使用香草WTForms,则需要将request.form
传递给构造函数。
# You have
form=SubmitForm
# It should be
form = SubmitForm(request.form)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.