我在网络应用中使用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
在验证失败时失败?
答案 0 :(得分:14)
查看添加validation methods的文档。您可以添加一个“更新”方法,该方法接受POST字典,确保存在所需的键,并使用修饰的验证器设置值(如果出现任何错误则引发错误)。
答案 1 :(得分:2)
我写了SAValidation,其目的是在验证模型数据时避免代码重复。它对我们很有用,至少对我们的用例来说很好。
在我们的测试中,我们有examples of the model's setup和测试以显示验证工作。
答案 2 :(得分:-3)
毕竟我最终使用了WTForms。