2012-04-24 4 views
0

처음으로 Google App Engine에 처음 게시되었습니다.Google 애플리케이션 엔진 python get_by_id가 작동하지 않습니다.

Model.get_by_id를 사용하여 개체에 액세스하려는 시도가 왜 작동하지 않는지 알 수 없습니다.

내 테스트 데이터가 채워 지므로 출력을 주석으로 확인할 수 있습니다. 데이터 저장소 뷰어에서 데이터의 ID를 확인할 수 있지만 해당 ID를 사용하려고 시도하면 개체가 반환되지 않습니다.

 
    namespace_manager.set_namespace('myNamespace') 

    for t in models.MyClass.all().fetch(100): 
     print t.key().id() # prints the key and verified in the Datastore Viewer 
     print t.date # prints the date 

     myClassInstance = models.MyClass.get_by_id(t.key().id()) # never finds the object 
     if tour is None: 
      print "MyClass instance not found" 

때문에 출력이 루트 엔티티 아닌뿐만 아니라 아이가 ...하지만 MyClass.get_by_id 방법은 올바른 개체를 반환하지 않도록

 
    6 
    2012-04-24 20:47:13.537000 
    MyClass instance not found 
    27 
    2012-04-24 20:47:13.605000 
    MyClass instance not found 
    29 
    2012-04-24 20:47:13.611000 
    MyClass instance not found 
    31 
    2012-04-24 20:47:13.617000 
    MyClass instance not found 

참고입니까?

미리 감사드립니다.

답변

3

부모/조상과 함께 엔티티를 생성하는 경우 get_by_id 함수에도 입력해야합니다.

entity = MyModel(parent = parentkey, 
       name = 'somename') 
entity.put() 

entity_by_id = MyModel.get_by_id(entity.key().id(), parent = parentkey) 
+0

계층 구조에서 몇 개의 레이어가 아래쪽에 있으면 어떻게 될까요? 부모님 키를 저장하는 엔티티의 예제가 많이있는 것처럼 전체 조상이 엄격하게 엔티티 그룹화에 대한 인상을 받고 있습니다. 네임 스페이스를 사용하여 데이터를 분할하므로 조상의 것을 포기하고 키나 참조 속성을 저장하기도합니다. – rocketboy2000

+0

부모를 따라 하위 계층까지도 해당 엔티티 그룹의 엔티티 부모가됩니다. – aschmid00

관련 문제