NDB 数据存储写入确认

NDB datastore write confirmation

每当字段更新或添加到数据存储区时是否激活任何标志?

我有一个修改字段的编辑处理程序(很明显),但是当我 return 到显示所有项目的页面时,在我再次刷新页面之前,字段显示没有变化。我正在做的只是重定向(self.redirect)到所有项目都是 post 的页面。

您正在查看 "eventual consistency" 的结果。从实际的角度来看,您可以考虑许多策略来解决这个问题(一些是技术性的,一些只是 UI 替代方案)。这里有几个要考虑的问题:

  • 使用实体组和祖先查询从查询​​中引入强一致性(如 Zig 在上述评论中提供的 link 所述)
  • 不要立即将他们重定向回列表页面 - 而是使用 "Fields Updated" 消息将他们带到详细信息(或编辑)页面。当他们返回列表页面时,它将保持一致。
  • 执行更新时,将当前更新值的副本存储到内存缓存中的唯一键下,然后使用包含该键的额外标志重定向到列表页面。然后,列表页面将使用该键(如果提供)来获取内存缓存条目中刚刚更新的值并将其合并到生成的查询列表中。

您可以使用 DateTime 属性 的 auto_now 选项:

last_updated = ndb.DateTimeProperty(auto_now=True)

这里有更详细的描述:How is the value of 'auto_now_add' determined in ndb's async operation?