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 は祖先関係を作成しません。また、検索オブジェクト「検索」への参照を持つ SearchResult オブジェクトのクエリとなる search.searchresult_set が必要になる可能性があります。

于 2010-04-21T13:36:07.063 に答える