Показать все объекты в SearchQuerySet, когда no_query_found - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь вернуть все объекты в SearchQuerySet всякий раз, когда пользователь впервые переходит на страницу поиска (и поэтому еще не ввел запрос). Согласно документу для no_query_found метода SearchForm:

def no_query_found(self):
    """
    Determines the behavior when no query was found.
    By default, no results are returned (``EmptySearchQuerySet``).
    Should you want to show all results, override this method in your
    own ``SearchForm`` subclass and do ``return self.searchqueryset.all()``.
    """
    return EmptySearchQuerySet()

Итак, следуя этим инструкциям, я попробовал:

class MySearchForm(SearchForm):

    def no_query_found(self):

        return self.searchqueryset.all()

Однако в результате возвращается пустой список. Кажется, у меня проблема, похожая на эту . Мне интересно, если это было исправлено, и если нет, каков наилучший способ вернуть все объекты в соответствующем SearchQuerySet, чтобы я мог показать пользователям все результаты, прежде чем они будут искать.

Если это полезно, мой взгляд в основном:

MySearchView(haystack.generic_views.SearchView):
    form_class = MySearchForm

Еще одно замечание: все работает нормально, когда я ввожу строку поиска, так что это изолированная проблема (т. Е. Я запустил rebuild_index и т. Д.).

...