2010-03-30 74 views
15

在Google App Engine上用Python查询数据存储区时,可以使用GQL或Entity.all(),然后对其进行筛选。因此,例如,这些都是等价通过Python中的Google App Engine中的实体键名进行筛选

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

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

现在,我们也可以通过键名进行查询的东西。我知道在GQL中,你是这样做的

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

但是,您现在如何使用过滤器来做同样的事情?

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

回答

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

对我来说,以类似的方式工作,而 “from_path” 功能并没有我的情况下工作,这个人做:

from google.appengine.api.datastore import Key 

key = Key(your_string_with_key) 
query.filter("__key__ = ", key) 
相关问题