首页 文章

在谷歌应用引擎上更新ndb时多次调用put()方法

提问于
浏览
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请求,下面的方法会更新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('/')

但是当我被重定向到主页面时, dogNamecatName 的值在我刷新页面之前不会更新 . 我发现通过调用 put() 方法两次而不是一次,在同一位置,这并没有明确原因 .

我做错了什么,或者ndb应该如何工作?

1 回答

相关问题