GAE db.ReferenceProperty自引用

Pwn*_*nna 1 python google-app-engine google-cloud-datastore

是否可以通过db.ReferenceProperty引用self,是否可以构造一个列表?

例如,我有一个用户类,我想为他/她的朋友提供一个引用User类的属性?

我目前正在使用Python.

编辑:

所以,如果我有这个课:

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()
Run Code Online (Sandbox Code Playgroud)

我可以通过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()
Run Code Online (Sandbox Code Playgroud)

另外,在上面两个例子中,我如何能够添加/删除/修改邻居列表?

谢谢

Jas*_*all 6

是的.

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

对同一个类的另一个模型实例的引用.请参见ReferenceProperty.

值类型:db.Key(见上文)