如何根据密钥将过滤器应用于Google数据存储区集合?

时间:2012-03-14 21:42:48

标签: python google-app-engine google-cloud-datastore gql

我正在尝试使用基于键参数的filter()方法。例如:

user_id="agxkZXZ-emFiZXRhLTJyCgsSBFVzZXIYGAw"
d=datamodel.Task.all()
d.filter("user=",user_id) 
results=d.fetch(1024)

这会产生零结果,可能是因为密钥格式不正确。如果这个gql我必须使用Key()函数,如下所示:

db.gqlQuery("select * from Task where user=Key(:1)",user_id)

但是我不认为我可以在过滤器中使用Key()函数,但必须有一些python函数等效...有没有办法正确格式化在filter()方法中使用的键?

1 个答案:

答案 0 :(得分:4)

您确实可以在过滤器中使用Key个实例!

from google.appengine.api.datastore_types import Key

user_id="agxkZXZ-emFiZXRhLTJyCgsSBFVzZXIYGAw"
datamodel.Task.all().filter('user', Key(user_id))