先粘贴代码:
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个空格。 问题解决。