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
我有一个有两个日期的模型,我想创建一个验证器,确保一个日期总是大于第二个日期。是否可以创建模型级验证器?如果是这样的语法是什么?
答案 0 :(得分:8)
这是验证器的一个小例子。
您可以在模型声明中使用CheckConstraint。或者您可以使用@validates装饰器。但SQLAlchemy将为第一个参数中的每个名称调用这个。
@validates('started_at', 'stopped_at')
def do_validation(self, key, field):
return field