【问题标题】:When are property validations run in Google App Engine (GAE)?何时在 Google App Engine (GAE) 中运行属性验证?
【发布时间】:2009-12-10 22:46:34
【问题描述】:

所以我正在阅读the following 文档,了解如何在 GAE 中定义您自己的属性类型。我注意到在扩展新属性时我还可以包含一个 .validate() 方法。此验证方法将被称为“当对属性进行分配以确保它与您分配的属性兼容时”。很公平,但具体是什么时候呢?

我的问题是,这个验证方法究竟是什么时候调用的?具体来说,它是在放置之前还是之后调用?如果我在事务中创建此实体,验证是在事务中调用还是在事务之前调用?

我知道,最佳情况下,每个属性都应该是“自包含的”,或者最多只能处理实体所在的状态。但是,如果您在 validate 方法中执行查询会发生什么?如果您在与当前交易实体组不同的实体组中执行查询,它会爆炸吗?

【问题讨论】:

    标签: python google-app-engine


    【解决方案1】:

    分别在放置前和交易期间(当然如果验证失败,它可能会中止交易)。对实体的属性进行“分配时”是在您编写 theentity.theproperty = somevalue 时(或当您隐式执行时)。

    我相信在交易期间(无论是在验证还是其他情况下)对不相关实体的查询是非交易性的(因此是非常不确定的做法),但并未被禁止——但关于最后一点,我不确定。

    【讨论】:

      猜你喜欢
      • 2013-03-31
      • 2017-11-14
      • 2015-01-02
      • 1970-01-01
      • 1970-01-01
      • 2017-05-04
      • 2011-05-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多