首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django-haystack:如何访问模板上的拼写建议?

django-haystack:如何访问模板上的拼写建议?
EN

Stack Overflow用户
提问于 2010-05-02 00:09:30
回答 3查看 3.4K关注 0票数 0

我正试着和Solr和HAYSTACK_INCLUDE_SPELLING = True一起玩django-haystack

如何访问模板(由默认SearchView生成)上的拼写建议?

编辑:另一个问题:拼写建议能否从数据库中找到单词?例如,使用来自haystack文档的默认Note模型和默认SearchView,当数据库包含名为"Lorem ipsum“的注释时,当我搜索单词"Lorm”时,没有拼写建议。这正常吗?

谢谢:-)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-05-02 18:13:15

如果在模板中设置了搜索查询,则可以执行以下操作:

代码语言:javascript
复制
{{ sqs.spelling_suggestion }}

查看:http://docs.haystacksearch.org/dev/searchqueryset_api.html#spelling-suggestion

了解更多详细信息。

对于要查找拼写建议的haystack,搜索模板应包括您正在查找的字段。因此,如果您搜索的模板包含{{ object.title }},您应该会选择拼写建议。

也许你忘了做

代码语言:javascript
复制
python manage.py update_index

在你添加了lorem注解之后。

票数 6
EN

Stack Overflow用户

发布于 2011-03-22 05:51:08

如果您使用的是默认SearchView,则{{ suggestion }}应该就足够了。

请参见:

https://github.com/toastdriven/django-haystack/blob/master/haystack/views.py#L118

...to查看模板上下文中的可用内容。

Hassan说您必须更新/重建索引,并且在搜索模板中需要正确的字段,这是正确的。

票数 1
EN

Stack Overflow用户

发布于 2019-08-27 23:47:45

我发现上面提到的解决方案只有在我们扩展haystack.views.SearchView的情况下才有效。新的基于SearchView的通用视图,即haystack.generic_views.SearchView,似乎不会将suggestion字段添加到上下文中,并且我们将无法访问此上下文变量{{ suggestion }}

我们需要手动将其添加到上下文中,如下所示:

代码语言:javascript
复制
from haystack.generic_views import SearchView

# Custom view.
class MySearchView(SearchView):

    template_name = 'search/search.html'
    queryset = SearchQuerySet().all()
    form_class = SearchForm  

    def get_context_data(self, *args, **kwargs):
        context = super(MySearchView, self).get_context_data(*args, **kwargs)

        # Add any additional context data we need to display in forms
        spell_suggestion = self.get_form().get_suggestion()
        context['spell_suggestion'] = spell_suggestion

        return context

将视图添加到urls.py

代码语言:javascript
复制
urlpatterns = [
    path('search/', MySearchView.as_view(), name='haystack_search'),

然后在search.html中,以{{ spell_suggestion }}的形式访问上下文变量

希望这能有所帮助:)

参考:https://django-haystack.readthedocs.io/en/v2.4.1/views_and_forms.html#upgrading

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2750624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档