WTForms QuerySelectMultipleField不发送List

时间:2013-07-06 03:23:12

标签: python sqlalchemy flask wtforms

我正在使用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数据,看起来当我选择多个对象时,它会发送多个。

我似乎无法弄清楚这一点。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

如果您直接查询form对象,而不是查询请求对象的“原始”表单数据,您将获得ORM模型实例

假设你正在使用Flask-WTF并且它的小帮助者已经构建了它,那么你的invitees行应该真正读取invitees = form.invitees.data