SQLAlchemy belgeleri, bir modele doğrulama eklemek için bir @validates dekoratörünün nasıl kullanılacağını açıklar.İki alan için sqlalchemy validator
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
ben iki tarih sahip bir model var ve ben bir tarih hep saniyeden daha büyüktür sağlayan bir doğrulayıcı oluşturmak istiyorum. Model düzeyinde bir doğrulayıcı oluşturmak mümkün mü? Eğer öyleyse sözdizimi nedir?
Neden sadece bir tane doğrulamak ve diğer gereksinimleri karşılayan emin olamaz: Bu kodu kontrol
Lütfen? Örneğin. 'assert self.repeat_email == address' veya benzeri? – javex
Bu muhtemelen işe yarayabilir, ancak başlatma sırasında herhangi bir sorunla karşılaşmam gerekir. Alan başına birkaç doğrulayıcı tanımlamayı ve alanların geçerli bir durum oluşturup oluşturmadığını belirlemek için bir satır doğrulayıcı kullanmayı gerçekten tercih ederim. Satır validasyonunu tek bir yerde tutmak ve farklı saha doğrulayıcıları boyunca dağılmamak için daha açık ve merhametli hisseder. – danatron