python - appengine DateTimeProperty auto_now=真正的意外行为

标签 python google-app-engine

我使用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/

相关文章:

c# - 我正在使用 python 的 request.post 方法来调用用 C# 开发的 API 的 post 方法

python - DJANGO_SETTINGS_MODULE 未定义

python - 在 Python3 上是否有 Ansible 的替代品

python - AppEngine - AppEngine HR 数据存储中奇怪的 ID 分配

google-app-engine - App Engine 应用程序中的管理 url 是什么?

python - 面临导入错误: DLL load failed while implementing Microsoft azure iothub_service_client

python - 运行 def __init__(self) 函数后,如何在类对象中添加数据?

google-app-engine - Google App Engine 和 Google Cloud Run 有什么区别?

python - 我可以完全用 Python 签署 X509 证书吗?

css - 在 Django 中使用 GAE 显示图像/CSS