8

给定

类类别(db.Model):
   名称 = db.Stringproperty()

假设我有一个嵌套层次结构

-根
 |-a
 | |-b
 | |-c
 |-x
   |-y
     |-z1
     |-z2

其中a的父母是root,b的父母是a,c的父母是b等等。

有没有一种简单的方法可以让我将节点y从那里移动xb这样的地方z1z2继续保持孩子的身份y

-根
 |-a
 | |-b
 | |-c
 | |-y
 | |-z1
 | |-z2
 |-x

这将意味着我只是改变y' 的父母。

但是,如果这不可能,则需要

  1. 创造新纪录ny = Category(parent=b, name=y)
  2. 递归地为每个孩子y创建一个新记录,该记录具有ny作为父母和
  3. 而不是删除y及其子项。
4

1 回答 1

9

父关系编码在实体的密钥中,并且密钥一旦创建就不可变,所以不,您不能更改现有实体的密钥。为此,您需要使用新密钥重新插入所有相关项目。

于 2009-05-01T09:36:15.860 回答