在flask框架中,对wtforms的SelectMultipleField的一个报错处理

Posted 六阶高手

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在flask框架中,对wtforms的SelectMultipleField的一个报错处理相关的知识,希望对你有一定的参考价值。

先粘贴代码:

form.py文件:

users = SelectMultipleField(
label="请选择用户",
validators=[
DataRequired("请输入用户列表!")
],
coerce=int,
choices=[],
description="权限列表",
render_kw={
"class": "form-control"
}
)
views.py文件:
部分代码:
user_list = UserAdmin.query.join(User).filter(
UserAdmin.admin_id == session["admin_id"],
UserAdmin.user_id == User.id
).all()
if request.method=="GET":
form.users.coerce=int
form.users.choices=[(v.user_id, v.user.name) for v in user_list]
if form.validate_on_submit():
data=form.data
因为两表级联查询要用到session["admin_id"]的值,无法在form.py中给choices赋值,所以只能将赋值放到view.py中进行。

初始值确实赋值成功了,但是,选中提交时,报错:

注意,其中的7是选中的那个选项的v.user_id.

解决办法:

去掉view.py中的

if request.method=="GET":

并将下面两行向前缩进4个空格。
问题解决。

 



以上是关于在flask框架中,对wtforms的SelectMultipleField的一个报错处理的主要内容,如果未能解决你的问题,请参考以下文章

flask框架----flask中的wtforms使用

python之路_flask框架_flask-session组件信号及wtforms组件

WTForms In Flask(WTForms在Flask中的应用)

Flask-WTForms

Flask 框架:运用WTForms实现用户注册

flask wtforms组件详解