我已经使用Solr在Haystack中为拼写建议正确配置了所有内容,但是,在使用SearchView
时,suggestion
上下文变量未设置。我意识到这是由于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()
这里看来只有在有结果的情况下才设置变量,这显然看起来不对。如果有人能指出我正确的方向,我真的很感激。
答案 0 :(得分: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))