【发布时间】:2016-05-05 00:05:10
【问题描述】:
干草堆 2.4.1 (Django 1.9)
我在分面搜索时遇到问题。
我尝试按照 this 最近的 Stack Overflow 答案中的示例进行操作,但它仍然无法正常工作。
来自搜索应用
#search/views.py
from django.shortcuts import render
from haystack.forms import FacetedSearchForm
from haystack.generic_views import FacetedSearchView as BaseFacetedSearchView
class FacetedSearchView(BaseFacetedSearchView):
form_class = FacetedSearchForm
facet_fields = ['categories']
template_name = 'search/search.html'
context_object_name = 'page_object'
#urls.py
from haystack.forms import FacetedSearchForm
from search.views import FacetedSearchView
from haystack.query import SearchQuerySet
urlpatterns += patterns('haystack.views',
url(r'^search/', FacetedSearchView.as_view(), name='haystack_search'),
)
如果你们能提供任何帮助,我将不胜感激。我在这个问题上束手无策。
我正在使用 Haystack 文档中的模板。
{% if query %}
<!-- Begin faceting. -->
<h2>By Category</h2>
{{ self.get_facets }}
<div>
<dl>
{% if facets.fields.category %}
<dt>category</dt>
{# Provide only the top 5 categories #}
{% for category in facets.fields.categories|slice:":5" %}
<dd><a href="{{ request.get_full_path }}&selected_facets=category_exact:{{ category.0|urlencode }}">{{ category.0 }}</a> ({{ category.1 }})</dd>
{% endfor %}
{% else %}
<p>No category facets.</p>
{% endif %}
</dl>
</div>
<!-- End faceting -->
<!-- Display results... -->
{% for result in page_object %}
<div class="search_result">
<h3><a href="{{ result.object.get_absolute_url }}">{{ result.object.title }}</a></h3>
<p>{{ result.object.body|truncatewords:80 }}</p>
</div>
{% empty %}
<p>Sorry, no results found.</p>
{% endfor %}
{% endif %}
【问题讨论】:
-
我在this question 中回答了您在第 1 步中提到的问题。 Haystack 文档已损坏。
-
感谢 solarissmoke 的回复。我试图遵循您的更改,但仍然遇到问题。任何帮助将不胜感激。
-
有什么问题?您是否收到错误或只是没有出现任何方面?你重建搜索索引了吗?
-
我没有收到任何错误,只是没有显示任何方面,也没有找到常规搜索结果。当我在 shell 中运行 sqs.facet_counts() 时,输出很好。但是,当我通过搜索表单运行搜索时,显示结果显示“没有类别方面”和“抱歉,未找到结果”。我已经重建了搜索索引,但没有任何变化。再次感谢您的帮助,solarissmoke。
-
听起来像是模板上下文问题。对于搜索结果,请尝试
{% for result in object_list %},而不是您目前拥有的,看看是否有什么不同?
标签: python django django-haystack