Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么这个flask管理表单总是无法通过验证?_Python_Sqlalchemy_Flask_Wtforms - Fatal编程技术网

Python 为什么这个flask管理表单总是无法通过验证?

Python 为什么这个flask管理表单总是无法通过验证?,python,sqlalchemy,flask,wtforms,Python,Sqlalchemy,Flask,Wtforms,状态字段显示3个选项,但在提交时始终显示“无效选项”,以选择的为准 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=Tru

状态字段显示3个选项,但在提交时始终显示“无效选项”,以选择的为准

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))

当db中的状态字段为整数时,这些选项很可能以unicode字符串的形式发送。你能试一下吗

form_args = dict(
    status=dict(
        choices=[(0, 'Regular'), (1, 'Guest'), (2, 'Banned')],coerce=int
    ))

您确定表单_args['status']中不应该有验证器吗?我有相同的问题,原因相同。我无法使
强制
选项工作,因此我必须覆盖
验证表单
和表单预填充上的
,以按所述转换值。