3

我在 Haystack 中使用 Solr 正确配置了拼写建议的所有内容,但是,在使用 时SearchViewsuggestion没有设置上下文变量。我意识到这是由于https://github.com/toastdriven/django-haystack/commit/8bf366b6781b22810696b18723da5902ce01e5b7

if self.results and hasattr(self.results, 'query') and self.results.query.backend.include_spelling:
    context['suggestion'] = self.form.get_suggestion()

这里似乎只有在有结果时才设置变量,这显然看起来不对。如果有人能指出我正确的方向,我将不胜感激。

4

1 回答 1

1

您可以覆盖 SearchView 的 create_response (回滚您提到的补丁):

class MySearchView(SearchView):
    def create_response(self):
        (paginator, page) = self.build_page()

        context = {
            'query': self.query,
            'form': self.form,
            'page': page,
            'paginator': paginator,
            'suggestion': None,
        }

        if self.results.query.backend.include_spelling:
            context['suggestion'] = self.form.get_suggestion()

        context.update(self.extra_context())
        return render_to_response(self.template, context, context_instance=self.context_class(self.request))
于 2013-01-27T18:21:31.010 回答