Django Haystack переопределить index_queryset класса в подклассе
Я использую Django Haystack (с Aldryn Search) для поиска контента на сайте клиента. Однако нам нужно изменить статьи, проиндексированные с помощью плагина Aldryn NewsBlog - статьи, назначенные разделу интрасети, индексировать не следует. Поэтому я создал подкласс в своем плагине, чтобы переопределить то, что сказано в документации:
Подклассы могут переопределить этот метод, чтобы избежать индексации определенных объектов.
Однако, когда я пытаюсь перестроить индекс, он говорит:
aldryn_newsblog.models.Article имеет более одного 'SearchIndex``, обрабатывающего его. Пожалуйста, исключите либо объект aldryn_newsblog.search_indexes.ArticleIndex, либо объект search_modifier.search_indexes.BlogHelperIndex
В документации не ясно, что мне нужно написать, чтобы изменить существующий индекс из плагина NewsBlog. Я не хочу полностью исключать это, как предполагает ошибка, но подклассировать это, как сказано в документации.
Вот мой файл search_indexes.py:
from aldryn_newsblog.search_indexes import ArticleIndex
class BlogHelperIndex(ArticleIndex):
def index_queryset(self):
# make sure only public posts are pulled
return self.get_model().objects.exclude(app_config__app_title='DirectConnection')
1 ответ
Я дебил. Aldryn Newsblog предоставляет простой флажок в настройках разделов, чтобы включить / отключить индексирование этого раздела без необходимости изменения кода.