我在 Web 应用程序中使用 CherryPy、Mako 模板和 SQLAlchemy。我来自 Ruby on Rails 背景,我正在尝试为我的模型设置一些数据验证。我想不出最好的方法来确保,比如说,当其他字段有值时,“名称”字段有值。我尝试使用 SAValidation但它允许我在所需列为空的地方创建新行,即使我在该列上使用了 validates_presence_of
也是如此。我一直在看WTForms但这似乎涉及很多重复的代码——我已经用表中的列设置了我的模型类,为什么我需要再次重复所有这些列只是为了说“嘿,这个需要一个值”?我来自“skinny controller, fat model”心态,一直在我的模型中寻找类似 Rails 的方法,例如 validates_presence_of
或 validates_length_of
。我应该如何验证我的模型接收到的数据,并确保 Session.add
/Session.merge
在验证失败时失败?
最佳答案
查看添加 validation methods 的文档.您可以只添加一个“更新”方法,该方法采用 POST 字典,确保存在所需的键,并使用修饰的验证器来设置值(如果有任何问题则引发错误)。
关于python - SQLAlchemy 声明式模型的数据验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6416023/