在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的一个报错处理的主要内容,如果未能解决你的问题,请参考以下文章
python之路_flask框架_flask-session组件信号及wtforms组件