2012-04-24 5 views
0

первый пост и новый движок Google!google app engine python get_by_id не работает

Я не могу на всю жизнь понять, почему мои попытки доступа к объекту с использованием Model.get_by_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" 

так выход

 
    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 

отмечают, что это не корневой объект и имеет детей, а также ... но не метод MyClass.get_by_id возвращать правильный объект?

благодарит заранее!

ответ

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

Смежные вопросы