Доступ к актуальным объектам с помощью ResultSet Hit объекты, возвращаемые из поиска по индексу на Djapian - PullRequest
0 голосов
/ 09 июля 2010

Я хочу, чтобы при запросе мне возвращался реальный список объектов вместо ResultSet с объектами Hit.

Пример:

indexer.search(word).prefetch()

это вернет объект ResultSet с совпадающими попаданиями, но я бы хотел иметь доступ к самим объектам. Похоже на то, что:

model.objects.filter(name__icontains=word)

вернется. причина, по которой я не просто использую второй вариант, заключается в том, что я не могу искать перекрестные объекты разных моделей, что можно сделать с помощью индексации.

спасибо

1 Ответ

0 голосов
/ 24 августа 2010

Я понял это. Объект возвращается в конце концов. Доступ к нему можно получить с помощью:

results = indexer.search(word).prefetch()
for hit in results:
    print hit.instance.model_attribute

где model_attribute будет существующей переменной возвращаемого объекта

Я полагаю, что функции класса также могут быть вызваны в месте model_attribute (с добавлением скобки в конце)

но учтите, что при поиске кросс-моделей 'model_attribute' может существовать или не существовать для разных моделей. Так что это может привести к ошибкам.

Я бы хотел, чтобы у djapian было больше документации по этому вопросу, поскольку я вообще не смог ее найти

...