GAE db.ReferenceProperty自引用

时间:2011-01-04 21:34:07

标签: python google-app-engine google-cloud-datastore

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

例如我有一个User类,我想要一个引用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()

我可以通过node1.neighboursnode2.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 个答案:

答案 0 :(得分:6)

Yes

  

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

     

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

     

值类型:db.Keysee above

答案 1 :(得分:0)