2013-04-05 1 views
2

У меня есть хороший поиск в моем проекте. Но в моих моделях у меня есть логическое поле с именем is_active.Фильтр сена hangstack Django в индексе поиска

Я хочу, чтобы поиск происходил только тогда, когда is_active является True, но я тестировал это без какого-либо удовлетворительного ответа.

мой search_indexes.py:

from haystack.indexes import * 
    from haystack.sites import site 
    from core.models import AnuncioSolucao 

    class AnuncioSolucaoIndex(RealTimeSearchIndex): 
     text = CharField(document=True,use_template=True) 

    site.register(AnuncioSolucao,AnuncioSolucaoIndex) 

Таким образом, он работает, но и принести мне все is_active == False. Есть предположения?

+0

Что вы используете в сенате? – Ponytech

+0

Haystack 1.2.7 и whoosh 2.4.1 –

ответ

2

В API SearchIndex имеется метод read_queryset. Мне просто пришлось отменить это:

class AnuncioSolucaoIndex(RealTimeSearchIndex): 
    text = CharField(document=True,use_template=True) 
    def read_queryset(self): 
     super(AnuncioSolucaoIndex,self).read_queryset() 
     return AnuncioSolucao.objects.filter(is_active=True)