Как получить сущности Google App Engine по предку - PullRequest
1 голос
/ 21 апреля 2010

В моем хранилище данных 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()

И я пытаюсь получить все объекты 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 , и это кажется правильным способом, но он не работает.

1 Ответ

4 голосов
/ 21 апреля 2010

Вы создаете объекты поиска с родителем? ReferenceProperty не создает отношения предка, и, вероятно, вам может понадобиться search.searchresult_set, который будет объектом Query for SearchResult, имеющим ссылку на объект поиска «search».

...