Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 如何按祖先检索Google应用程序引擎实体_Google App Engine_Google Cloud Datastore_Gql - Fatal编程技术网

Google app engine 如何按祖先检索Google应用程序引擎实体

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() 并且,我尝试在以下函数中检索给定搜索实体的

我的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
但是,它总是返回一个空集


你知道我做错了什么吗?我已经通读了,这似乎是正确的方法,但它不起作用。

您是否使用父级创建搜索实体?ReferenceProperty没有创建祖先关系,您可能需要设置search.searchresult\u,这将是对具有搜索对象“search”引用的searchresult对象的查询。

您是否正在使用父对象创建搜索实体?ReferenceProperty没有创建祖先关系,您可能需要设置search.searchresult,这将是对引用搜索对象“search”的searchresult对象的查询。

如果要使searchresult成为搜索的后代,则必须使用searchresult=SearchResultparent=a\u search创建它们,…如果要使SearchResult成为搜索的后代,则必须使用_result=SearchResultparent=a_Search。。。