python - 验证 sqlalchemy 中的列表修改
问题描述
考虑以下验证primary_email
字段的 sqlalchemy 模型:
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
装饰器时,它只会在分配操作上触发,例如
self.secondary_email = ['example@me.com']
我相信这是可以通过自定义类实现的,但我想知道是否有更简单、更通用的解决方案?
解决方案
推荐阅读
- java - 如何解析多部分/表单数据?
- swift - 如何在 swift4 中设置 firebase 事务
- python - 谁能建议我如何获得python中最小值之前的元素?
- javascript - 如何计算jsPDF中的垂直高度?
- javascript - Js - onreadystatechange XMLHttpRequest Uncaught ReferenceError上的相同类调用方法:未定义函数
- math - Vivado 2018 上 VHDL 中的定点运算
- java - 以下程序的时间复杂度
- slack - Slack bot 仅在第一个通道中响应斜杠命令
- git - 多个依赖项目的 Git 存储库设置
- css - 如何使用 CSS 将图像添加到 div 气泡