I documenti SQLAlchemy spiegano come utilizzare un decoratore @validates per aggiungere la convalida a un modello.validatore sqlalchemy per due campi
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
Ho un modello con due date, e mi piacerebbe creare un validatore garantire una data è sempre maggiore del secondo. È possibile creare un validatore a livello di modello? Se sì, qual è la sintassi?
Perché non puoi semplicemente validare uno e fare in modo che soddisfi i requisiti di cui l'altra? Per esempio. 'asserire self.repeat_email == indirizzo' o simile? – javex
Probabilmente potrebbe funzionare, tuttavia avrei bisogno di intrappolare eventuali problemi durante l'inizializzazione. Preferisco davvero definire alcuni validatori per campo e un validatore di riga per determinare se i campi creano uno stato valido. Sembra semplicemente più esplicito e controllabile mantenere la convalida delle righe in un unico posto e non disperse tra i vari validatori di campo. – danatron