6

Ist es möglich, der Model-Instanz, die sich bereits im Datenspeicher befindet, ein neues Parent zu ändern oder zuzuweisen? Zum Beispiel muss ich so etwas wie diesesÄndern | Zuordnen von Parent für die Model-Instanz im Google App Engine-Datenspeicher

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

aber es funktioniert nicht auf diese Weise, weil task.parent integrierte Methode ist. Ich habe überlegt, eine neue Key-Instanz für die Aufgabe zu erstellen, aber es gibt auch keine Möglichkeit, den Schlüssel zu ändern.

Irgendwelche Gedanken?

Antwort

9

Nach the docs, nein:

Die Eltern eines Unternehmens definiert ist , wenn das Unternehmen erstellt wird, und kann nicht später geändert werden.

...

Der komplette Schlüssel eines Unternehmens, einschließlich des Pfades, der Art und der Name oder numerische ID ist einzigartig und spezifisch für diese Einheit. Der vollständige Schlüssel wird zugewiesen, wenn die Entität im Datenspeicher erstellt wird und keine der Teilen ihre Teile ändern kann.

Das Festlegen einer übergeordneten Entität ist nützlich, wenn Sie das übergeordnete Element und das untergeordnete Element in derselben Transaktion bearbeiten müssen. Andernfalls schränken Sie die Leistung nur ein, indem Sie beide zwingen, sich in derselben Entitätsgruppe zu befinden, und die Möglichkeit einschränken, die Beziehung nach der Erstellung der Entität zu aktualisieren.

Verwenden Sie stattdessen eine ReferenceProperty.

+0

Ja, sieht aus wie ich keine andere Wahl habe :) danke. –

+0

BTW, hier ist eine weitere gute Verwendung der Eltern http://www.youtube.com/watch?v=AgaL6NGpkB8 im Microblogging-Beispiel. –

Verwandte Themen