为什么这个flask-admin表单总是验证失败?
状态字段显示了三个选项,但无论选择哪个,提交时总是显示“不是一个有效的选择”。
from website import app, db
from flask.ext import admin
from flask.ext.admin.contrib import sqlamodel
from wtforms.fields import SelectField
class Users(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(160), unique=True)
status = db.Column(db.Integer)
def __repr__(self):
return self.name
class UsersAdmin(sqlamodel.ModelView):
form_overrides = dict(status=SelectField)
form_args = dict(
status=dict(
choices=[(0, 'Regular'), (1, 'Guest'), (2, 'Banned')],
))
admin = admin.Admin(app, 'Admin')
admin.add_view(UsersAdmin(Users, db.session))
1 个回答
18
很可能你发送的选项是以unicode字符串的形式,而你数据库中的状态字段是整数类型。你可以试试下面的代码:
form_args = dict(
status=dict(
choices=[(0, 'Regular'), (1, 'Guest'), (2, 'Banned')],coerce=int
))