2

我的项目搜索工作正常。但在我的模型中,我有一个名为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. 有什么想法吗?

4

1 回答 1

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)
于 2013-04-09T13:58:40.237 回答