python-2.7 - WTForms JSON不能使用 FormFields

  显示原文与译文双语对照的内容
0 0

嵌套表单( FormFields ) 在使用 wtforms json时不会填充数据。 我无法发现我的错误,请参见下面的示例。


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

这是 Bug 还是我做错了什么? 感谢你的帮助 !

时间: 原作者:

0 0

我是一个完全的缓慢,使用 from_json ( ) -function错误,因为它是一个返回实例化表单的类函数。 请参阅以下路由的更新代码。


@app.route('/', methods=['POST'])
def why_no_work():
 form = User.from_json(request.json) # <-- This line right here

 if form.validate():
 return jsonify(success='YEAH')
 else:
 return jsonify(errors=form.errors)

原作者:
...