Esiste un modo semplice per modificare il genitore di un record nel datstore del motore di app di Google

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

Domanda

Data

class Category(db.Model):
   name = db.Stringproperty()

Dire che ho una gerarchia nidificata

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

dove il genitore di a è root , il genitore di b è a , c Il genitore di è b ecc.

Esiste un modo semplice per spostare il nodo y da x a b in modo tale che z1 e z2 continuano a rimanere figli di y :

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

Ciò significherebbe semplicemente cambiare il genitore di y .

Tuttavia, se ciò non fosse possibile di quanto richiederebbe

  1. creazione di un nuovo record ny = Categoria (parent = b, name = y) e
  2. ricorsivamente per ogni figlio di y creando un nuovo record che ha ny come genitore e
  3. rispetto all'eliminazione di y e dei suoi figli.
È stato utile?

Soluzione

La relazione principale è codificata nella chiave di un'entità e la chiave è immutabile una volta creata, quindi no, non è possibile modificare la chiave di un'entità esistente. Per fare ciò, è necessario reinserire tutti gli elementi pertinenti con nuove chiavi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top