我有两个模拟用户 Jo 和 Sam,他们的 ID 分别为 117138609372751079516 和 144229817858159123282。
该应用程序具有以下实体:
class MockEntity(ndb.Model):
ownerId = ndb.StringProperty(default=users.get_current_user().user_id())
当两者同时登录并且任何一个用户第一次保存/放置实体时,属性“ownerId”将随机填充用户 ID:117138609372751079516或144229817858159123282
使用 pre_put_hook 似乎可以解决问题:
def _pre_put_hook(self):
if not self.ownerId:
self.ownerId = users.get_current_user().user_id()
我已经解决了眼前的问题,但为什么会这样呢?这已经在开发和生产中与一组大约 50 名测试人员进行了测试。大约 40% 的人可以看到不属于他们的实体。