我在GAE上有一个Web应用程序,它使用一个ndb数据库,其中每个实体都有属性用户信息和两个字符串,Entity类如下所示
class UserPlus(ndb.Model):
user = ndb.UserProperty()
dogName = ndb.StringProperty(indexed=False)
catName = ndb.StringProperty(indexed=False)
主页检查是否已存在与该用户对应的实体,如果是,则显示字符串 dogName
和 catName
的值 .
然后是一个表单,用户可以在其中更新 dogName
和 catName
的值 . 这会对另一个页面执行POST请求,下面的方法会更新entiy
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应该如何工作?
1 回答
正如Guido的嫌疑人和bossylobster / Fred Saur在这里回答我的老问题 - Should I expect stale results after redirect on local environment? - 很可能是最终的一致性问题 .