2010-03-30 9 views
15

En Google App Engine para consultar el almacén de datos con Python, se puede usar GQL o Entity.all() y luego filtrarlo. Así, por ejemplo, estos son equivalentesFiltrado por nombre de clave de entidad en Google App Engine en Python

gql = "SELECT * FROM User WHERE age >= 18" 
db.GqlQuery(gql) 

y

query = User.all() 
query.filter("age >=", 18) 

Ahora, también es posible consultar las cosas por su nombre clave. Sé que en GQL lo haces así

gql = "SELECT * FROM User WHERE __key__ >= Key('User', 'abc')" 
db.GqlQuery(gql) 

Pero, ¿cómo utilizarías ahora el filtro para hacer lo mismo?

query = User.all() 
query.filter("__key__ >=", ?????) 

Respuesta

16
from google.appengine.api.datastore import Key 
query.filter("__key__ >=", Key.from_path('User', 'abc')) 
3

Para mí de una manera similar trabajadas, mientras que la función "from_path" no funcionó en mi caso, éste lo hizo:

from google.appengine.api.datastore import Key 

key = Key(your_string_with_key) 
query.filter("__key__ = ", key) 
Cuestiones relacionadas