14

SQLAlchemy 文档解释了如何使用 @validates 装饰器向模型添加验证。

 from sqlalchemy.orm import validates

class EmailAddress(Base):
    __tablename__ = 'address'

    id = Column(Integer, primary_key=True)
    email = Column(String)

    @validates('email')
    def validate_email(self, key, address):
        assert '@' in address
        return address

我有一个有两个日期的模型,我想创建一个验证器,确保一个日期总是大于第二个。是否可以创建模型级验证器?如果是这样,语法是什么?

4

1 回答 1

3

这是验证器的一个小示例。

您可以在模型的声明中使用 CheckConstraint。或者您可以使用 @validates 装饰器。但是 SQLAlchemy 将为第一个参数中的每个名称调用这个。

@validates('started_at', 'stopped_at')
def do_validation(self, key, field):
    return field

请检查此代码:https ://gist.github.com/matrixise/6417293

于 2013-09-02T21:12:04.430 回答