Самостоятельная ссылка ReferenceProperty в Google App Engine - PullRequest
2 голосов
/ 03 апреля 2010

У меня небольшие проблемы с ReferencePropertys в App Engine (Python).

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

Моя первая попытка была такой:

class Folder(db.Model):
    id = db.StringProperty()
    name = db.StringProperty()
    created = db.DateTimeProperty(auto_now_add=True)
    folder = db.ReferenceProperty(Folder, collection_name="folders")

Но это терпит неудачу, так как «Папка» не определяется, когда «папка» пытается быть определенной.

Я также попытался определить "папка" вне основного объявления для "Папка", например так:

class Folder(db.Model):
    id = db.StringProperty()
    name = db.StringProperty()
    created = db.DateTimeProperty(auto_now_add=True)

Folder.folder = db.ReferenceProperty(Folder, collection_name="folders")

Но это не так с: AttributeError: у объекта «Папка» нет атрибута «папки»

Я немного озадачен. У кого-нибудь есть опыт с этим или решение этой проблемы?

Заранее спасибо.

Ответы [ 2 ]

9 голосов
/ 03 апреля 2010

Это именно то, для чего SelfReferenceProperty предназначен.

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

Вы можете создать отдельную модель, чтобы связать их, названную что-то вроде FolderChild:

class FolderChild(db.Model):
    parent = db.ReferenceProperty(Folder)
    child = db.ReferenceProperty(Folder, collection_name="children")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...