1. 程式人生 > >在flask框架中,對wtforms的SelectMultipleField的一個報錯處理

在flask框架中,對wtforms的SelectMultipleField的一個報錯處理

pre inf req ESS multi bmi 其中 ews IT

先粘貼代碼:

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的一個報錯處理