我的搜索工作正常。但在我的模型中,我有一个名为is_active
的布尔字段。
我希望只有当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 :(得分:2)
SearchIndex API上有一个名为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)