1

例如,所有用户均可编辑的所有“交易表”实体。我如何检查,是否有人更改和更新了同一个实体?

4

2 回答 2

1

如果我正确理解了您的问题,您要确保如果两个人正在编辑同一个实体,其中一个人应该无法保存。

首先,为您的所有模型使用此 Base 类是一个好主意,并且这两个属性会自动更新:

class Base(ndb.Model):
  created = ndb.DateTimeProperty(auto_now_add=True)
  modified = ndb.DateTimeProperty(auto_now=True)

现在,modified在您的模型中拥有该属性有助于发现更新期间是否(由其他人)更改了某些内容:

  • 在编辑之前读取modified属性并将其存储在before_modified
  • 在保存之前读取modified属性并将其与before_modified
  • 如果这两个值相同,则可以安全保存,否则通知用户此实体已被其他人更改
于 2013-02-20T11:04:58.143 回答
0

使用时间戳。如果您正在写入的对象的时间戳与您读取该对象时的时间戳不匹配,则同时已对其进行了修改。

于 2013-02-20T10:39:12.517 回答