我使用的是WTForms,我有一个隐藏字段不返回值的问题,而文档说它们应该返回值。下面是一个简单的例子:
表单.py:from wtforms import (Form, TextField, HiddenField)
class TestForm(Form):
fld1 = HiddenField("Field 1")
fld2 = TextField("Field 2")
实验.html:{% from "_formshelper.html" import render_field %}
{% for field in form %}
{{ render_field(field) }}
{% endfor %}
(render_field只将标签、字段和错误放在td标记中)
实验.py:from flask import Flask, request, render_template
from templates.forms import *
from introspection import *
app = Flask(\__name__)
app.config.from_object(\__name__)
db_session = loadSession()
@app.route('/exp', methods=['POST', 'GET'])
def terms():
mydata = db_session.query(Peter).one()
form = TestForm(request.form, mydata)
if request.method == 'POST' and form.validate():
return str(form.data)
return render_template('experiment.html', form = form)
if __name__ == '__main__':
app.run(debug = True)
mydata返回表中只有一行包含两个字段fld1和fld2。fld1是一个整数自动递增字段。表单中填充了该数据,因此,如果运行experience.py,则在提交表单时,将得到:
{'fld2':u'blah blah blah,'fld1':u'1'}
但如果我将fld1改为HiddenField,当我点击submit时,我会得到:
{'fld2':u'blah blah blah,'fld1':u'}
我做错什么了?