【发布时间】:2015-04-15 00:06:11
【问题描述】:
当我使用 WTForms-JSON 时,嵌套表单 (FormFields) 不会填充数据。我无法发现我的错误,请参见下面的示例。
from flask import Flask, request, jsonify
from flask_wtf import Form
from wtforms import TextField, FormField, IntegerField
from wtforms.validators import InputRequired
import wtforms_json
app = Flask(__name__)
app.config["WTF_CSRF_ENABLED"] = False
wtforms_json.init()
class Address(Form):
street = TextField('street', validators=[InputRequired()])
number = IntegerField('number', validators=[InputRequired()])
class User(Form):
name = TextField('name', validators=[InputRequired()])
address = FormField(Address, label='address')
@app.route('/', methods=['POST'])
def why_no_work():
form = User()
form.from_json(request.json)
print form.data
if form.validate():
return jsonify(success='YEAH')
else:
return jsonify(errors=form.errors)
if __name__ == '__main__':
app.run(debug=True)
我发送以下 JSON 请求
{
"name": "Alex",
"address": {
"street": "Plz Work Street",
"number": 1337
}
}
但form.from_json(request.json) 之后的打印显示地址对象从未填充数据(此外,从路由返回“适当的”错误)。
打印输出:
{'name': u'Alex', 'address': {'street': u'', 'number': None}}
我正在使用 WTForms 2.0.2、WTForms-JSON 0.2.8
这是一个错误还是我做错了什么?感谢您的帮助!
【问题讨论】:
标签: python python-2.7 flask wtforms wtforms-json