Здесь является связанной темой из группы 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
, которое сообщает хранилищу данных, что у сущности есть родительско-дочерние отношения со своим родителем.
Из документов :
Когда приложение создает
объект, он может назначить другой объект
в качестве родителя новой сущности, используя
родительский аргумент в модели
конструктор. Назначение родителя
новая сущность помещает новую сущность в
та же группа лиц, что и родитель
юридическое лицо.
Сущность без родителя является корневой сущностью. Сущность, которая является родительской для другой сущности, также может иметь родителя. Цепочка родительских сущностей от сущности до корня - это путь к сущности, а члены пути - это предки сущности. Родитель объекта определяется при создании объекта и не может быть изменен позже.