Django Haystack & Whoosh Search работает, но SearchQuerySet возвращает 0 результатов

Изменить: Подробнее в нижней части сообщения ...

Оригинальный вопрос:

Кажется, у меня та же проблема, что и в этом (нерешенном) вопросе:django-haystack + Whoosh SearchQuerySet (). all () всегда Нет

Я настроил Haystack с Whoosh в своем проекте Django, и сначала все работало нормально (SearchQuerySet использовался для получения результатов), но после неудачной попытки создать новую пользовательскую форму поиска (откат от git) кажется, что индексирование и оригинальная страница поиска все еще работает нормально, но теперь SearchQuerySet () всегда возвращает 0 результатов!

Бег:

manage.py rebuild_index --verbosity=2

Правильно показывает:

Indexing 14 assets
    indexed 1 - 14 of 14 (worker PID: 1234).

Эти индексированные активы могут быть затем правильно найдены в исходной форме поиска.

Тем не менее, открытие оболочки Django и запуск:

from haystack.query import SearchQuerySet
SearchQuerySet().all().count()

Всегда возвращается0!

Соответствующийpip freeze:

Python 3.5.2Джанго 1.9.3Джанго-Хейстек 2.5.0Рассекать 2.7.4

/myapp/search_indexes.py:

from haystack import indexes
from .models import Asset

class AssetIndex(indexes.SearchIndex, indexes.Indexable):
    text = indexes.NgramField(document=True, use_template=True)
    asset_description = indexes.CharField(model_attr='asset_description')
    manufacturer = indexes.CharField(model_attr='asset_manufacturer')

    def get_model(self):
        return Asset

    def no_query_found(self):
        return self.searchqueryset.exclude(content='foo')

    def index_queryset(self, using=None):
        return self.get_model().objects.all()

/myapp/templates/search/indexes/myapp/asset_text.txt:

{{ object.asset_description }}
{{ object.asset_details }}
{{ object.asset_manufacturer }}
{{ object.asset_model }}
... etc.

/myapp/urls.py:

urlpatterns = [
    ....
    url(r'^search/', include('haystack.urls')),
    ....
]

РЕДАКТИРОВАТЬ:

Так что копаясь в исходном коде Haystack, я узнал, откуда взялся 0, но не почему!

/myvenv/Lib/site-packages/hackstack/query.py

class SearchQuerySet(object):
    ...

    def __len__(self):
        if self._result_count is None:
            self._result_count = self.query.get_count()

        # Some backends give weird, false-y values here. Convert to zero.
        if not self._result_count:
            self._result_count = 0

    # This needs to return the actual number of hits, not what's in the cache.
    return self._result_count - self._ignored_result_count

    ....

Изменение0 любой int заставляет SearchQuerySet всегда возвращать этот int, но я до сих пор не знаю почемуif not self._result_count было бы правдой ...

Ответы на вопрос(1)

Ваш ответ на вопрос