根据SQLAlchemy文档,我知道我可以使用在模型列上设置验证器:
def validate_phone(target, value, oldvalue, initiator):
"Strip non-numeric characters from a phone number"
return re.sub(r'(?![0-9])', '', value)
# setup listener on UserContact.phone attribute, instructing
# it to use the return value
listen(UserContact.phone, 'set', validate_phone, retval=True)
但我想将额外的参数传递给验证器,例如:
^{pr2}$我必须如何在侦听器中配置这个验证器,以便它接受额外的参数begin和end?在
好的,我通过在列定义中添加一个参数来解决这个问题(我已经定义了一个从Column继承来添加额外参数的RsColumn类),该类包含一个dict,校验器函数名和可选参数为kwargs。在
当我的应用程序启动时,它会解析所有模型并检查是否在
—列中的参数。它在“set”上设置一个监听器,该监听器执行函数“execute_field_validations”,该函数再次解析字段中的所有“validators”,并在给定参数的情况下选择性地执行它们。在
^{pr2}$相关问题 更多 >
编程相关推荐