我在 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 请求,下面的方法更新实体
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应该如何工作?