如何在wtforms中删除id字段上的验证器

时间:2012-05-18 16:00:11

标签: validation sqlalchemy wtforms

我已经从类创建了sqlalchemy类和wtform Form。

from wtforms.ext.sqlalchemy.orm import model_form
class ClientGroup(Base, BaseModel):
    __tablename__ = 'client_groups'

    id = Column(Integer, primary_key=True)
    name = Column(String(255))
    sale = Column(Integer)

    def __unicode__(self):
        return self.name


ClientGroupForm = model_form(ClientGroup, Form, field_args={
    'name': {'validators' : [validators.Required(), validators.Length(min=5)]},
})
在应用程序中的

我有以下代码:

form = ClientGroupForm(request.form)
if form.validate():
    .. save data

当我向app发送新数据时,它会返回验证错误。 ID必须是整数字段。 但是新数据没有任何内容。

请给我建议如何在sqlalchemy中使用wtforms?

1 个答案:

答案 0 :(得分:2)

通过将以下内容添加到field_args

,明确将其设为可选
'id': {'validators' : [validators.Optional()],

但是,我认为您应该完全从表单中排除id字段:

ClientGroupForm = model_form(ClientGroup, Form, field_args={
    'name': {'validators' : [validators.Required(), validators.Length(min=5)]},
    exclude=['id'],
})