Google app engine 如何按祖先检索Google应用程序引擎实体
我的Google App Engine数据存储中有以下两种型号:Google app engine 如何按祖先检索Google应用程序引擎实体,google-app-engine,google-cloud-datastore,gql,Google App Engine,Google Cloud Datastore,Gql,我的Google App Engine数据存储中有以下两种型号: class Search(db.Model): what = db.StringProperty() class SearchResult(db.Model): search = db.ReferenceProperty(Search) title = db.StringProperty() content = db.StringProperty() 并且,我尝试在以下函数中检索给定搜索实体的
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
但是,它总是返回一个空集
你知道我做错了什么吗?我已经通读了,这似乎是正确的方法,但它不起作用。您是否使用父级创建搜索实体?ReferenceProperty没有创建祖先关系,您可能需要设置search.searchresult\u,这将是对具有搜索对象“search”引用的searchresult对象的查询。您是否正在使用父对象创建搜索实体?ReferenceProperty没有创建祖先关系,您可能需要设置search.searchresult,这将是对引用搜索对象“search”的searchresult对象的查询。如果要使searchresult成为搜索的后代,则必须使用searchresult=SearchResultparent=a\u search创建它们,…如果要使SearchResult成为搜索的后代,则必须使用_result=SearchResultparent=a_Search。。。