【发布时间】:2013-03-04 11:53:30
【问题描述】:
我想知道验证 NDB 实体属性的最佳方法是什么:
- 日期必须在未来
- 等级(整数属性)必须介于 1 到 10 之间
- 对另一个实体的引用必须具有某些属性值(例如 book.category.active 必须为 True)
我也在使用 WTForms 来验证提交的请求,但我也想在较低级别上强制执行验证,例如数据存储实体本身。
所以基本上我正在寻找的是在数据存储实体上调用验证以查看它是否有效。 如果它有效,我可以将实体放入数据存储区,但如果它无效,我想检索无效属性,包括未成功验证的应用验证器。
WTForms 可能不够用的另一个原因是我正在使用新的 Cloud Endpoints。 在此模型中,我收到的是实际实体,而不是 http 请求。
其他 AppEngine 用户如何解决这个问题?
【问题讨论】:
-
注意在 Java 中我会使用 Hibernate Validator 和/或 Spring 框架的验证机制。
-
不清楚您的问题是什么。您可以继承 NDB 属性类并定义 validate() 方法。虽然这是在文档中 - 也许这不是你要问的?
-
嗨 Guido,是的,我在文档中注意到了这一点,可能这就是我应该使用的。不幸的是,文档对我来说如何使用这个 validate() 方法还不够清楚。例如。还有一种方法可以检查实体是否有效?并检查哪些属性无效?
标签: python google-app-engine app-engine-ndb wtforms google-cloud-endpoints