考虑下面的SqLalCury模型,验证^ {< CD1>}字段:
from sqlalchemy import Column, String
from sqlalchemy.orm import validates
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.dialects import postgresql
from sqlalchemy.ext.mutable import MutableList
Base = declarative_base()
class Test(Base):
id = Column(Integer, primary_key=True)
primary_email = Column(String(128))
@validates('primary_email')
def valid_email(self, key, value):
if not '@' in value:
raise ValueError(f"Invalid {key}: '{value}'")
return value
def __init__(self, email):
primary_email = email
它按预期工作,但现在我想添加另一列
secondary_email = Column(MutableList.as_mutable(postgresql.ARRAY(String(128))))
如何对secondary_email.append(email)
调用执行验证
当我将'secondary_email'
添加到validates
decorator时,它只会在分配操作上被触发,比如
self.secondary_email = ['example@me.com']
我相信这是可以通过自定义类实现的,但我想知道是否有更简单、更通用的解决方案
目前没有回答
相关问题 更多 >
编程相关推荐