1

我已经从类中创建了 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

当我向应用程序发送新数据时,它会返回验证错误。ID 必须是整数字段。但是一个新数据没有任何ID。

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

4

1 回答 1

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'],
})
于 2012-05-21T12:00:47.287 回答