我正在使用Flask应用程序来执行一些事件调度。我在表单中遇到WTForms QuerySelectMultipleField问题。
forms.py
class EnterEvent(Form):
...
invitees = QuerySelectMultipleField('Invitees', query_factory=lambda:
models.User.query.order_by(models.User.name).all())
并在我的 init .py文件中解析Form POST数据。只是为了测试我试图返回request.form ['invitees']只是为了看看传递了什么。最后,我想验证数据并将其添加到我的SQLite3数据库中。
@app.route('/event', methods=['POST', 'GET'])
def addEvent():
form = EnterEvent()
if request.method == 'POST':
...
invitees = request.form['invitees']
return invitees
WTForm文档说QuerySelectMultipleField应该返回一个包含ORM模型实例的列表,但是当我解析POST请求时,我没有得到列表。我在浏览器中检查了POST数据,看起来当我选择多个对象时,它会发送多个。
我似乎无法弄清楚这一点。任何帮助将不胜感激!
答案 0 :(得分:0)
如果您直接查询form
对象,而不是查询请求对象的“原始”表单数据,您将获得ORM模型实例
假设你正在使用Flask-WTF并且它的小帮助者已经构建了它,那么你的invitees
行应该真正读取invitees = form.invitees.data
。