为什么价值不是'啊啊!'作为填充物。相反,它表示需要进行表格验证。
<form class="form form-inline" method="post" role="gform" id='gform'>
{{ gform.hidden_tag() }}
{{ wtf.form_errors(gform) }}
{{ wtf.form_field(gform.goal) }}
{{ wtf.form_field(gform.GHF(value='AHHHHH!')) }}
{{ wtf.form_field(gform.submit) }}
</form>
形式
class goal_form(Form):
goal = TextField('goal', validators = [Required()])
GHF =HiddenField('', validators = [Required()])
submit=SubmitField('add goal')
视图
@app.route('/', methods=['GET', 'POST'])
@app.route('/index', methods=['GET', 'POST'])
def index():
gform=goal_form()
P=models.Projects.query.all()
if gform.validate_on_submit():
u=models.Projects.query.get(1)
p=models.Goals(goal=gform.goal.data,proj=u)
db.session.add(p)
db.session.commit()
return redirect(url_for('index'))
return render_template("index.html",gform=gform,P=P)
from app import db
我只是试图通过硬编码值传递验证。一旦它起作用,我会放入一些有意义的东西
答案 0 :(得分:1)
在模板wtf.form_field
中应该接受一个字段,但是当你调用gform.GHF(value='AHHHHH!')
时,会创建一个字符串。因此,请尝试在视图中而不是在模板中将值传递给GHF。
@app.route('/', methods=['GET', 'POST'])
@app.route('/index', methods=['GET', 'POST'])
def index():
gform=goal_form()
P=models.Projects.query.all()
if gform.validate_on_submit():
u=models.Projects.query.get(1)
p=models.Goals(goal=gform.goal.data,proj=u)
db.session.add(p)
db.session.commit()
return redirect(url_for('index'))
gform.GHF.data = 'AHHHHH!'
return render_template("index.html", gform=gform, P=P)
from app import db
或者您可以在表单中设置默认值:
class goal_form(Form):
goal = TextField('goal', validators=[Required()])
GHF = HiddenField('', default='AHHHHH!', validators=[Required()])
submit = SubmitField('add goal')