Как вернуть только индексированные объекты определенного типа в Haystack

Можно ли использовать SearchQuerySet и ограничить результаты только определенной индексированной моделью? Если я добавлю Note и NoteIndex в Haystack, могу ли я вывести только результаты, соответствующие экземплярам Note?

EDIT:

Я посмотрел и обнаружил, что есть зарезервированное поле с именем django_ct, которое хранится на каждой индексированной модели. Можно ли фильтровать в этом поле? Какие значения требуется?

ДВОЙНОЙ РЕДАКТИРОВАНИЕ:

Nevermind. После прочтения исходного кода Haystack django_ct является "appname.modelname" внутри и может быть запрошен с помощью SearchQuerySet.filter(django_ct = 'appname.modelname')

1 ответ

В соответствии с документацией Haystack объект SearchQueryset имеет метод под названием models(), который ограничивает результаты для этих моделей.

например.

SearchQuerySet().models(BlogEntry, Comment).filter(content='foo')

Как вы видите, он использует фактический класс модели. Я предполагаю, что он использует это для поиска содержимого для выполнения фильтра.

licensed under cc by-sa 3.0 with attribution.