2010-03-30 72 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) 
相關問題