appengine DateTimeProperty auto_now =真意外行为

时间:2012-06-17 14:42:56

标签: python google-app-engine

我使用last_touch_date DateTimeProperty作为使用auto_now=True标志修改应用程序数据存储区中实体的方法。 当用户发布实体时,它会收到last_touch_date作为将来更新的参考。

但是,当我之后检查实体的last_touch_date时,我总是会在写入之后和之后很快找到此属性之间的略微增量。我觉得这是高一致性模型的结果。

这是否已知行为?除了自己管理这个属性之外还有解决方法吗?

1 个答案:

答案 0 :(得分:2)

不,这不是由于HRD - auto_now纯粹是在客户端库中实现的。在编写实体之后,属性的值与写入数据存储区的内容不对应,而是与上次读取的内容相对应。我不确定你会为一个全新的实体看到什么,但它可能与写的不一样。

如果你切换到NDB,你会发现auto_now表现得更合理。 : - )