Как вернуть в Haystack только проиндексированные объекты определенного типа - PullRequest
1 голос
/ 27 февраля 2012

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

EDIT:

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

DOUBLE EDIT:

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

1 Ответ

1 голос
/ 16 марта 2012

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

например,

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

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

...