我的Google App Engine数据存储区中有以下两种型号:
class Search(db.Model):
what = db.StringProperty()
class SearchResult(db.Model):
search = db.ReferenceProperty(Search)
title = db.StringProperty()
content = db.StringProperty()
并且,我试图在以下函数中检索给定搜索实体的所有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 docs,这似乎是正确的方法,但它不起作用。
答案 0 :(得分:4)
您是否使用父级创建搜索实体? ReferenceProperty不会创建祖先关系,您似乎可能需要search.searchresult_set,它将是对SearchResult对象的查询,这些对象具有对搜索对象'search'的引用。