Existe-t-il un moyen simple de changer le parent d'un enregistrement dans le magasin de données de Google App Engine

StackOverflow https://stackoverflow.com/questions/808476

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

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

  1. créer un nouvel enregistrement ny = catégorie (parent = b, nom = y) et
  2. récursivement pour chaque enfant de y créant un nouvel enregistrement ayant ny comme parent et
  3. que de supprimer y et ses enfants.
Était-ce utile?

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
scroll top