2013-06-02 2 views
0

도와주세요. Python 2.7 + Google 애플리케이션 엔진에 학생 프로젝트를 작성하고 있습니다.두 페이지, 동일한 데이터베이스 쿼리, 다른 결과

내가 다음 페이지가 있습니다 /- 메인 페이지 내가 업로드 된 파일

을의 목록을// file_blob_key 삭제 - 나는 다음 문을 사용하여 두 핸들러에서 datastrore

에서 레코드를 삭제하는 핸들러를 :

'/'페이지에서
bases = dbModels.kbEntity.all() 

이 문은/삭제/file_blob_key '에 데이터 저장소

의 레코드 목록을 반환 '이 문은 빈 목록을 반환합니다.

무슨 문제입니까?

처리기 : getAllBasesTable 당신이 bases을 재정의의 라인 3에서

#=============================================================================== 
# 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 ndb 

에 대한

from google.appengine.ext import db 

을 변경 한 지금 모든 쿼리 당신은 당신이있는 경우에 정말 이해가되지 않습니다 원인이 모두 핸들러에 대한 코드의 이상을 제시해야

2

. 따라서 bases = {}을 삭제하면 원하는 결과를 얻을 수 있습니다.

+0

이미 문제는 해결되지 않았습니다. 내가 말한대로 '/'처리기에서 데이터 저장소의 모든 레코드를 가져 오거나/delete/blob_key 처리기 - 아무것도 표시하지 않습니다. – pydevd

관련 문제