GAE db.ReferenceProperty Самостоятельная ссылка - PullRequest
1 голос
/ 05 января 2011

Можно ли ссылаться на себя через db.ReferenceProperty и возможно ли создать список?

Например, у меня есть класс для пользователя, и я хочу свойство для его / ее друзей, которое ссылается на класс пользователя?

Я сейчас использую Python.

Edit:

Итак, если у меня есть этот класс:

class Node(db.Model):
    name = db.StringProperty(required=True)
    neighbour = db.SelfReferenceProperty(collection_name="neighbours")

node1 = Node(name="node1")
node2 = Node(name="node2")
node1.neighbour = node2
node2.neighbour = node1
node1.put()
node2.put()

можно ли получить доступ к списку других узлов через node1.neighbours и node2.neighbours?

Или я должен сделать это:

class Node(db.Model):
    name = db.StringProperty(required=True)
    neighbour = db.ListProperty(Node)

node1 = Node(name="node1")
node2 = Node(name="node2")
node1.node = [node2]
node2.neighbour = [node1]
node1.put()
node2.put()

Также, как я могу добавить / удалить / изменить список соседей в обоих примерах выше?

Спасибо

Ответы [ 2 ]

6 голосов
/ 05 января 2011

Да .

class SelfReferenceProperty (verbose_name = None, collection_name = None, ...)

Ссылка на другой экземпляр модели того же класса.См. ReferenceProperty .

Тип значения: дБ. Ключ ( см. Выше )

0 голосов
/ 05 января 2011

См. Также этот связанный вопрос SO: SelfReferenceProperty против ListProperty Google App Engine

...