SearchQuerySet()。filter(content ='content')返回结果,但它们不会显示在search.html

时间:2017-04-24 06:07:51

标签: python django search django-haystack

我可以进入我的shell并输入

 sqs = SearchQuerySet().filter(content='content')
 len(sqs)

我得到了结果。我检查了它们,当我输入

 sqs[0]
 sqs[0].id
 sqs[0].text

我得到了连贯的结果。但是当我在我的网站上使用搜索表单时,我没有得到任何结果。

我甚至没有定义自己的SearchView。这是默认的。在模板上,我试过了

 {% for result in page.object_list %}
 {% for result in object_list %}
 {% for result in page_obj.object_list %}

仍然没有得到任何结果。并且查询确实运行,因为我可以将内容放入

 {% if query %}

这样才能明确起作用。我该怎么办?

谢谢。

1 个答案:

答案 0 :(得分:0)

我通过替换

解决了这个问题
  url(r'^search/', include('haystack.urls')),

 url(r'^search/?$', views.SearchResultsView.as_view(), name='search-view'),

并使我自己的SearchResultsView没有什么特别之处

 class SearchResultsView(SearchView):
     template_name = 'search/search.html'
     form_class = MySearchForm
     queryset = SearchQuerySet().all()
     paginate_by = 10
     context_object_name = 'object_list'

并使用

  page_obj
模板中的