2013-06-02 79 views
0

请帮帮我。 我正在使用Python 2.7 + Google Application Engine编写我的学生项目。两页,同样的数据库查询,不同的结果

我有几页: /- 主要页面,在这里我有上传文件

列表/删除/ file_blob_key - 处理器从datastrore

在这两种处理程序删除记录我用下面的语句:

bases = dbModels.kbEntity.all() 

在“/”页面这一说法在数据存储

返回记录列表上的“/删除/ file_blob_key '页面此语句返回空列表

什么问题?

处理程序:

#=============================================================================== 
# Handler to delete file from server by key 
#=============================================================================== 
class DeleteHandler(webapp2.RequestHandler): 
    def get(self, resource): 
     base = dbModels.kbEntity.all().filter('kbKey=', resource).fetch(1)[0] 
     base.delete() 
     self.redirect('/') 

#=============================================================================== 
# 
#=============================================================================== 
class IndexHandler(webapp2.RequestHandler): 
    def getAllBasesTable(self): 
     bases = dbModels.kbEntity.all() 
     bases.order('-kbUploadDate') 
     bases = {} 
     template = JE.get_template('./templates/TPLBasesTable.html') 

     values = { 
      'bases': bases 
     } 
     return template.render(values) 

    def get(self): 
     self.response.headers['Content-Type'] = 'text/html' 
     template = JE.get_template('./templates/TPLIndex.html') 
     values = { 
      'bases': self.getAllBasesTable() 
     } 
     html = template.render(values) 
     self.response.out.write(html) 
+1

你必须表现出更多的代码的两个处理器事业真的,如果你有没有意义在两个处理程序中完全相同的东西..返回不同的结果,因为第二个是删除的东西,为什么你需要显示所有实体的列表..? – Lipis

+0

我已将处理程序添加到我的帖子中 – pydevd

回答

0

问题解决了! 我已经改变

from google.appengine.ext import db 

from google.appengine.ext import ndb 

现在,所有的查询工作正常

2

getAllBasesTable要覆盖bases的3线。所以删除bases = {},你应该有你想要的结果。

+0

已经,但问题没有解决。正如我在'/'处理程序中所说的,我从数据存储区获取所有记录,在/ delete/blob_key处理程序中 - 没有任何记录 – pydevd

相关问题