Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.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 WTForms Alchemy ModelForm不使用现有对象验证_Python_Flask_Wtforms_Flask Wtforms - Fatal编程技术网

Python WTForms Alchemy ModelForm不使用现有对象验证

Python WTForms Alchemy ModelForm不使用现有对象验证,python,flask,wtforms,flask-wtforms,Python,Flask,Wtforms,Flask Wtforms,下面是我的代码,来自一个简单的示例。我一直在努力研究如何让ModelForms进行验证。验证工作与标准表单没有问题。任何关于我做错了什么的帮助都是感激的 from flask.ext.wtf import Form from wtforms_alchemy import model_form_factory class User(UserMixin, db.Model): __tablename__ = 'users' id = db.Column(db.Integer, prima

下面是我的代码,来自一个简单的示例。我一直在努力研究如何让ModelForms进行验证。验证工作与标准表单没有问题。任何关于我做错了什么的帮助都是感激的

from flask.ext.wtf import Form
from wtforms_alchemy import model_form_factory

class User(UserMixin, db.Model):
    __tablename__ = 'users'

id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(128), nullable=False, unique=True)
username = db.Column(db.String(32), nullable=False, unique=True)

BaseModelForm = model_form_factory(Form)

class ModelForm(BaseModelForm):
    @classmethod
    def get_session(cls):
        return db.session

class UserForm(ModelForm):
    class Meta:
       model = User


flask_shell >> uf = UserForm(obj=jeff, csrf_enabled=False)
flask_shell >> uf.validate()  #False
flask_shell >> uf.errors

{'email': ['This field is required.'],
 'password_hash': ['This field is required.'],
 'username': ['This field is required.']}


flask_shell >> uf.__dict__

{'SECRET_KEY': '',
 '_errors': None,
 '_fields': OrderedDict([('csrf_token',
            <wtforms.ext.csrf.fields.CSRFTokenField at 0x1075239e8>),
          ('email',
           <wtforms_components.fields.html5.StringField at 0x107523ac8>),
          ('username',
           <wtforms_components.fields.html5.StringField at 0x107523b70>),
 '_obj': <User 'jeff'>,
 '_prefix': '',
 'csrf_enabled': False,
 'csrf_token': <wtforms.ext.csrf.fields.CSRFTokenField at 0x1075239e8>,
 'email': <wtforms_components.fields.html5.StringField at 0x107523ac8>,
 'meta': <wtforms.form.Meta at 0x107523898>,
 'username': <wtforms_components.fields.html5.StringField at 0x107523b70>}
来自flask.ext.wtf导入表单
来自wtforms\u alchemy进口模型\u form\u工厂
类用户(UserMixin,db.Model):
__tablename_uu='users'
id=db.Column(db.Integer,主键=True)
email=db.Column(db.String(128),null=False,unique=True)
username=db.Column(db.String(32),nullable=False,unique=True)
BaseModelForm=模型形式工厂(形式)
类模型形式(BaseModelForm):
@类方法
def get_会话(cls):
返回db.session
类UserForm(ModelForm):
类元:
模型=用户
flask\u shell>>uf=UserForm(obj=jeff,csrf\u enabled=False)
烧瓶外壳>>uf.validate()#假
烧瓶外壳>>uf.errors
{'email':['此字段为必填项'],
“密码\u散列”:[“此字段是必需的。”],
“用户名”:[“此字段是必需的”。]}
烧瓶外壳>>超滤__
{'SECRET_KEY':'',
“_错误”:无,
“_字段”:OrderedDict([('csrf_标记],
),
(“电子邮件”,
),
(“用户名”,
),
“_obj”:,
“_前缀”:”,
“csrf_已启用”:False,
“csrf_令牌”:,
“电子邮件”:,
“元”:,
“用户名”:

jeff在这里是什么意思?uf=UserForm(obj=jeff,csrf_enabled=False)是模型“User”的对象吗?@VijeshVenugopal是类型“User”的对象jeff很可能是用户对象“jeff”的错误。请检查它是否具有所有值。jeff在这里是什么意思?uf=UserForm(obj=jeff,csrf_enabled=False)它是“User”模型的对象吗?@VijeshVenugopal是jeff是UserType类型的对象很可能是用户对象“jeff”的错误。请检查它是否具有所有值。