6

¿Es posible cambiar o asignar un nuevo padre a la instancia del Modelo que ya está en el almacén de datos? Por ejemplo, yo necesito algo como estoCambiar | Asignar principal para la instancia del Modelo en el almacén de datos de Google App Engine

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

pero no funciona de esta manera porque es task.parent método integrado. Estaba pensando en crear una nueva instancia clave para la tarea, pero tampoco hay forma de cambiarla.

¿Alguna idea?

Respuesta

9

Según the docs, no:

La matriz de una entidad se define cuando se crea la entidad, y no pueden ser cambiados más tarde.

...

La clave completa de una entidad, incluyendo la ruta, el tipo y el nombre o ID numérico, es único y específico para esa entidad. La clave completa se asigna cuando la entidad es creada en el almacén de datos, y ninguna de sus partes puede cambiar .

El establecimiento de una entidad principal es útil cuando necesita manipular el elemento primario y secundario en la misma transacción. De lo contrario, solo estás limitando el rendimiento forzándolos a ambos a estar en el mismo grupo de entidades y restringiendo tu capacidad de actualizar la relación una vez que se ha creado la entidad.

Use una propiedad de referencia en su lugar.

+0

Sí, parece que no tengo otra opción :) gracias. –

+0

Por cierto, aquí hay otro buen uso de los padres http://www.youtube.com/watch?v=AgaL6NGpkB8 en el ejemplo de Microblogging. –

Cuestiones relacionadas