[英]Google appengine datastore tree structure
我需要能够在appengine数据库中制作树状结构。
我试图做一个对象引用本身,但还没有使它起作用。
class Item(db.Model):
children = db.ListProperty(db.ReferenceProperty(Item))
这是google-appengine组的相关主题。
您可以在每个子节点中存储对父节点的引用,而不是在父节点中存储对子节点的引用。
这是一些代码:
class Node(db.Model):
pass
...snip...
root = Node()
db.put(root)
for i in xrange(10):
child = Node(parent=root)
db.put(child)
for i in xrange(5):
grandchild = Node(parent=child)
db.put(grandchild)
parent
是Model
上的一个特殊字段,它告诉数据存储区一个实体与其父级具有父子关系。
从文档 :
应用程序创建实体时,可以使用Model构造函数中的parent参数将另一个实体分配为新实体的父代。 将父实体分配给新实体会将新实体与父实体置于同一实体组中。
没有父级的实体是根实体。 作为另一个实体的父实体的实体也可以具有父实体。 从实体到根的父实体链是该实体的路径,而路径的成员是该实体的祖先。 实体的父代是在创建实体时定义的,以后无法更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.