我对SQLAlchemy来说比较新。
我使用sqlalchemy装饰器进行了一个非常简单的model
自定义@validates
函数:
class User(db.Model):
...
email = db.Column(db.String(255)) # don't worry about uniqueness for now
@validates('email')
def validate_email(self, key, address):
assert '@' in address # of course a regex is better, I know
return address
然后再说:
try:
user = User('fidel#cuba.cu')
db.session.add(user)
db.session.commit()
except Exception as e:
print e.message # returns an empty string ''
我想做什么:
...
except Exception as e:
# json_error is a custom function of my own
return json_error(e.message, 400)
所以问题是: 如何将自定义错误消息附加到SQLAlchemy中的自定义验证规则? 也许我需要创建一个带有消息的自定义Exception?
答案 0 :(得分:4)
断言可以采用第二个参数 - 如果断言失败则使用的消息:
class User(db.Model):
# ... snip ...
@validates('email')
def validate_email(self, key, address):
assert '@' in address, "Invalid email"
return address