我在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是如何工作的?
答案 0 :(得分:1)
正如Guido怀疑和bossylobster / Fred Saur在这里回答我的旧问题 - Should I expect stale results after redirect on local environment? - 很可能是最终的一致性问题。