1

我的 Google App Engine 数据存储区中有以下 2 个模型:

class Search(db.Model):
    what = db.StringProperty()

class SearchResult(db.Model):
    search = db.ReferenceProperty(Search)

    title = db.StringProperty()
    content = db.StringProperty()

而且,我正在尝试在以下函数中检索给定 Search 实体的所有 SearchResult 实体:

def get_previous_search_results(what='', where=''):
    search_results = None

    search = db.GqlQuery("SELECT * FROM Search WHERE what = :1", what).fetch(1)
    if search:
        search_results = db.GqlQuery("SELECT * FROM SearchResult WHERE ANCESTOR IS :1", search[0].key()).fetch(10)

    return search_results

但是,它总是返回一个空集。

任何想法我做错了什么?我已经阅读了Python Datastore API 文档,这似乎是正确的方法,但它不起作用。

4

1 回答 1

4

您是否正在创建具有父级的搜索实体?ReferenceProperty 不会创建祖先关系,您可能需要 search.searchresult_set,这将是对 SearchResult 对象的查询,该对象具有对搜索对象“搜索”的引用。

于 2010-04-21T13:36:07.063 回答