2011-01-04 2 views
1

Можно ли ссылаться на self через db.ReferenceProperty, и можно ли построить список?GAE 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() 

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

Благодаря

ответ

6

Yes.

class SelfReferenceProperty (verbose_name = None, имя_выборки = None, ...)

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

Тип значения: db.Key (see above)

+0

Добавлены дополнительные детали, пожалуйста, обратитесь к вопросу. – Pwnna

0

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

+0

Добавлены дополнительные сведения, пожалуйста, обратитесь к вопросу. – Pwnna

+0

Мое чтение документов указывает, что вы не можете иметь список 'SelfReferenceProperties', как вы можете, из строк или int. – bgporter

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