我使用last_touch_date DateTimeProperty 作为使用auto_now=True
标志修改应用程序数据存储中的实体的方法。
当用户发布实体时,它会收到其last_touch_date作为 future 更新的引用。
但是,当我事后检查实体的last_touch_date时,我总是发现在写入后立即读取的该属性与写入后不久读取的该属性之间存在轻微的差异。我感觉这是高一致性模型的结果。
这是已知行为吗?除了我自己管理该特性之外,还有其他解决方法吗?
最佳答案
不,这不是 HRD 造成的——auto_now 纯粹在客户端库中实现。写入实体后,属性的值并不对应于写入数据存储的内容,而是对应于上次读取的内容。我不确定您会看到一个全新的实体,但它可能仍然与所写的不一样。
如果您切换到 NDB,您会发现 auto_now 的行为更加合理。 :-)
关于python - appengine DateTimeProperty auto_now=真正的意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11072138/