Google App Engine: PolyModel + SelfReferenceProperty - PullRequest
1 голос
/ 14 апреля 2010

Может ли класс на основе PolyModel использоваться в качестве SelfReferenceProperty?

У меня есть следующий код:

class BaseClass(polymodel.PolyModel):
    attribute1 = db.IntegerProperty()
    attribute2 = db.StringProperty()

class ParentClass(BaseClass):
    attribute3 = db.StringProperty()

class ChildClass(BaseClass):
    parent = db.SelfReferenceProperty(collection_name = 'children')


p = ParentClass()
p.attribute1 = 1
p.attribute2 = "Parent Description"
p.attribute3 = "Parent additional data"
p.put()

c = ChildClass()
c.attribute1 = 5
c.attribute2 = "Child Description"
c.parent = p.key()
c.put()

Я выполняю этот код и проверяю хранилище данных через интерфейс администратора сервера разработки. Родительский экземпляр сохраняется в классе хранилища данных = 'BaseClass, ParentClass', а дочерний - нет. В браузер не выводится сообщение об ошибке (отладка включена) и ничего в журнале запуска для моего приложения.

Возможно ли это сделать?

1 Ответ

0 голосов
/ 14 апреля 2010

Это неправда, что я здесь ничего не изменил. Мне действительно пришлось изменить атрибут «parent» на «parent_ref». Также ссылки не работали, как я ожидал, пока я не изменил с SelfReferenceProperty на ReferenceProperty (Parent, collection_name = 'children')

Но конечный результат заключается в том, что полиморфная ссылка на себя работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...