2012-03-29 31 views
9

¿Existe un equivalente para modelname_set (una propiedad con referencia atrás) en Google App Engine's NDB?Google App Engine ndb equivalente para modelname_set (propiedad de referencia inversa)

En el viejo DB una entidad modelo tenía described the back-reference property as:

El nombre de los valores predeterminados de propiedad respaldo referencia a modelname_set (con el nombre de la clase del modelo en minúsculas, y "_ID" añadido a la end) y se puede ajustar usando el argumento collection_name al constructor ReferenceProperty.

Me di cuenta de que esta propiedad no parece existir con instancias NDB db.Model.

¿NDB tiene un equivalente a la propiedad de referencia posterior?

Respuesta

13

No hay propiedades de referencia directa en NDB porque NDB no utiliza el mismo paradigma que el cliente de almacén de datos original. Utilizaría KeyProperty para su referencia directa y luego usaría una consulta para todo lo que tiene establecido KeyProperty para su referencia posterior.

class Comment(ndb.Model) 
    source = ndb.KeyProperty() 

qry = Comment.query().filter(source=ndb.Key('Source', 'Sandy')) 
+0

Gracias Michael. Solo curiosidad, ¿qué propósito tiene 'Sandy' en tu ejemplo? –

+2

'Sandy' es solo el ID de la clave (asignado por el usuario), al igual que 'Fuente' es el tipo. –