NDB Query不返回最近添加的对象

时间:2013-05-08 20:32:21

标签: google-app-engine app-engine-ndb

我有一个GAE网站。主页显示项目对象列表和添加更多项目的表单。按下提交按钮时,会发出一个运行'create_userstoryproject()'方法的ajax请求。此方法添加新项目并返回所有项目的列表,包括刚刚添加的项目。出于某种原因,'create_userstoryproject()'方法中的查询不会返回刚刚添加的项目。但是,如果我刷新页面,导致'get()'方法运行,新添加的项目就会显示正常。我没有简化这段代码 - 它是剪切和粘贴的。在刷新页面之前,任何人都知道为什么新创建的项目不会出现?

class Home(BaseApp): #BaseApp is derived from webapp2.RequestHandler
  def get(self):
    self.context['userstoryprojects'] = UserStoryProject.query().order(UserStoryProject.Order)
    self.context['userstorystatuses'] = UserStoryStatus.query().order(UserStoryStatus.Order)
    self.render('/userstories')

  def create_userstoryproject(self):
    description = self.request.get('userstoryproject[description]', default_value=None)
    if description:
      userstoryproject = UserStoryProject()
      userstoryproject.Description = description
      userstoryproject.put()
      self.context['userstoryprojects'] = UserStoryProject.query().order(UserStoryProject.Order)
      self.render('/userstoryprojects')
    else:
      self.write("fail.")

1 个答案:

答案 0 :(得分:4)

这是因为eventual consistency