0

我在 GAE 上有一个 Web 应用程序,它使用一个 ndb 数据库,其中每个实体都具有用户信息和两个字符串作为属性,Entity 类如下所示

class UserPlus(ndb.Model): 
user = ndb.UserProperty()
dogName = ndb.StringProperty(indexed=False)
catName = ndb.StringProperty(indexed=False)

主页检查是否已经存在与该用户对应的实体,如果是,则显示字符串的值dogNamecatName

然后有一个表单,用户可以在其中更新 和 的dogNamecatName。这对另一个页面执行 POST 请求,下面的方法更新实体

    def post(self): 
    currentUser = users.get_current_user()
    up = UserPlus.query(UserPlus.user==currentUser).get()
    up.dogName = self.request.get('dog_name')
    up.catName = self.request.get('cat_name')
    weatherUser.put()
    self.redirect('/')

但是当我被重定向到主页时,dogName和的值在catName我刷新页面之前不会更新。我发现通过put()在同一位置调用该方法两次而不是一次,这种情况不再发生,但我不清楚为什么。

我做错了什么还是ndb应该如何工作?

4

1 回答 1

1

正如 Guido 怀疑和 bossylobster/Fred Saur 在这里回答我的老问题 -在本地环境重定向后我是否应该期待过时的结果?- 最有可能的最终一致性问题。

于 2013-09-10T20:50:28.760 回答