Existe-t-il un moyen simple de changer le parent d'un enregistrement dans le magasin de données de Google App Engine
-
03-07-2019 - |
Question
Étant donné
class Category(db.Model): name = db.Stringproperty()
Disons que j'ai une hiérarchie imbriquée
-root |-a | |-b | |-c |-x |-y |-z1 |-z2
où le parent de
est racine
, le parent de b
est a
, c Le parent de
est b
, etc.
Existe-t-il un moyen simple de déplacer le noeud y
de x
vers b
tel que z1
et z2
restent les enfants de y
:
-root |-a | |-b | |-c | |-y | |-z1 | |-z2 |-x
Cela voudrait dire que je change simplement le parent de y
.
Toutefois, si cela n'est pas possible, il vous faudrait
- créer un nouvel enregistrement
ny = catégorie (parent = b, nom = y)
et - récursivement pour chaque enfant de
y
créant un nouvel enregistrement ayantny
comme parent et - que de supprimer
y
et ses enfants.
La solution
La relation parent est codée dans la clé d'une entité et la clé est immuable une fois créée. Par conséquent, vous ne pouvez pas modifier la clé d'une entité existante. Pour ce faire, vous devez réinsérer tous les éléments pertinents avec de nouvelles clés.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow