2011-03-19 2 views
2
1 from google.appengine.ext import webapp 
    2 from google.appengine.ext.webapp.util import run_wsgi_app 
    3 from google.appengine.ext import db 
    4 
    5 a = db.GqlQuery('SELECT * FROM Store WHERE count = True').count 
    6 
    7 print 'Content-Type: text/plain' 
    8 print '' 
    9 print str(a)+'blah blah' 

'저장'테이블이 존재합니다.왜 이것이 실패합니까? (Google App Engine 데이터 저장소, Python)

오류는 다음과 같습니다

Traceback (most recent call last): 
    File "/opt/google-appengine/google/appengine/tools/dev_appserver.py", line 3245, in _HandleRequest 
    self._Dispatch(dispatcher, self.rfile, outfile, env_dict) 
    File "/opt/google-appengine/google/appengine/tools/dev_appserver.py", line 3186, in _Dispatch 
    base_env_dict=env_dict) 
    File "/opt/google-appengine/google/appengine/tools/dev_appserver.py", line 531, in Dispatch 
    base_env_dict=base_env_dict) 
    File "/opt/google-appengine/google/appengine/tools/dev_appserver.py", line 2410, in Dispatch 
    self._module_dict) 
    File "/opt/google-appengine/google/appengine/tools/dev_appserver.py", line 2320, in ExecuteCGI 
    reset_modules = exec_script(handler_path, cgi_path, hook) 
    File "/opt/google-appengine/google/appengine/tools/dev_appserver.py", line 2216, in ExecuteOrImportScript 
    exec module_code in script_module.__dict__ 
    File "/home/jck/bitsconv/bitsconv.py", line 5, in <module> 
    a = db.GqlQuery('SELECT * FROM Store WHERE count = True').count() 
    File "/opt/google-appengine/google/appengine/ext/db/__init__.py", line 2298, in __init__ 
    model_class = class_for_kind(self._proto_query._entity) 
    File "/opt/google-appengine/google/appengine/ext/db/__init__.py", line 266, in class_for_kind 
    raise KindError('No implementation for kind \'%s\'' % kind) 
KindError: No implementation for kind 'Store' 

답변

6

당신은 "쇼핑몰"에 대한 모델을 정의 할 필요가있다. 스토어 행처럼 데이터 스토어에 데이터를 가져와 관리하더라도 모델 클래스가 존재하지 않으면 실패합니다.

해당 유형의 개체에 대해 저장된 데이터가있는 작업 응용 프로그램에서 내 모델 클래스 중 하나의 이름을 바꾸어 확인했습니다. 그것은 동일한 예외를 던져서, 나는 그것이 당신의 문제의 원인이기도하다고 생각합니다. 응용 프로그램에서이 곳을 추가하고 오류를 변경하는 경우 참조 :

class Store(db.Model): 
    pass 

는 또한,이 오류를 일으키는 것이 아니라, count 실제로 방법이다. 다음을 사용하십시오 :

a = db.GqlQuery('SELECT * FROM Store WHERE count = True').count() 
+0

감사합니다. – jck

+0

@jck : 구체적으로 "The Store Store exists"는 사실이 아닙니다. 테이블, 엔티티가 없습니다. – geoffspear

관련 문제