6

È possibile modificare o assegnare un nuovo genitore all'istanza Modello già presente in archivio dati? Per esempio ho bisogno di qualcosa di simileCambia | Assegna padre per l'istanza Modello su Datastore Google App Engine

task = db.get(db.Key(task_key)) 
project = db.get(db.Key(project_key)) 
task.parent = project 
task.put() 

ma non funziona in questo modo perché è task.parent metodo incorporato. Stavo pensando di creare una nuova istanza Key per l'attività, ma non c'è modo di cambiare la chiave.

Qualche idea?

risposta

9

Secondo the docs, no:

La madre di un'impresa è definito quando si crea l'entità, e non può essere modificato in seguito .

...

La chiave completa di un'entità, incluso il percorso, il tipo e il nome o ID numerico, è unico e specifico per tale entità. La chiave completa viene assegnata quando l'entità è creata nel datastore e nessuna delle sue parti può essere modificata da .

L'impostazione di un'entità padre è utile quando è necessario manipolare padre e figlio nella stessa transazione. Altrimenti, stai limitando le prestazioni forzando entrambi ad appartenere allo stesso gruppo di entità e limitando la possibilità di aggiornare la relazione dopo che l'entità è stata creata.

Utilizzare invece una proprietà di riferimento.

+0

Sì, sembra che non ho scelta :) grazie. –

+0

BTW, ecco un altro buon uso dei genitori http://www.youtube.com/watch?v=AgaL6NGpkB8 nell'esempio Microblogging. –