GAE Chaining查询表

时间:2012-10-12 22:54:36

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

我有这些模型(如下)。我想运行一个查询,该查询从Result中获取10个最近的条目,其中“site”ReferenceProperty是我的一个,基于Site中的“users”。

我试过了:

user = users.get_current_user()
sites = Site.all().filter('user =', user).order('name')
results = Result.all().filter('site IN', sites).fetch(limit=10)

用户和网站查询有效,但结果之一无效,因为“网站”不是列表。

from google.appengine.ext import db

class Site(db.Model):

users = db.ListProperty(db.Key)
name = db.StringProperty(required=True)
slug = db.TextProperty(required=True)
url = db.TextProperty(required=True)
page = db.TextProperty()
active = db.BooleanProperty()
blackboard = db.BooleanProperty()


class Result(db.Model):

site = db.ReferenceProperty(Site)
timestamp = db.DateTimeProperty(auto_now_add=True)
status = db.StringProperty(required=True)
reason = db.StringProperty(required=True)
headers = db.TextProperty()
extra_info = db.TextProperty()

1 个答案:

答案 0 :(得分:3)

可能是因为您实际上并未执行网站查询;添加.fetch()调用,如下所示:

sites = Site.all().filter('user =', user).order('name').fetch(limit=10)