干草堆和飞快移动没有搜索结果

时间:2014-08-26 05:47:08

标签: python django django-templates django-haystack whoosh

我一直关注Haystack网站上有关如何添加搜索功能的文档,但我无法显示任何结果。我已经在shell中运行了这一切,并且所有内容都会检出(计数为433,文字不仅仅是'')。

sqs = SearchQuerySet().all()
sqs.count()
sqs[0].text

此时使用this guide作为参考,我得出的结论是我的搜索模板是问题所在,但我只是使用Haystack官方教程中的默认模板,所以我不知道自己搞砸了什么(也就是为什么page.object_list为空)。这是相关模板的相关部分:

{% if query %}
        <h3>Results</h3>

        {% for result in page.object_list %}
            <p>
                <a href="{{ result.object.get_absolute_url }}">{{ result.object.title }}</a>
            </p>
        {% empty %}
            <p>No results found.</p>
        {% endfor %}

        {% if page.has_previous or page.has_next %}
            <div>
                {% if page.has_previous %}<a href="?q={{ query }}&amp;page={{ page.previous_page_number }}">{% endif %}&laquo; Previous{% if page.has_previous %}</a>{% endif %}
                |
                {% if page.has_next %}<a href="?q={{ query }}&amp;page={{ page.next_page_number }}">{% endif %}Next &raquo;{% if page.has_next %}</a>{% endif %}
            </div>
        {% endif %}
    {% else %}
        {# Show some example queries to run, maybe query syntax, something else? #}
    {% endif %}

为了更好地衡量,请点击我的search_indexes.py,

from haystack import indexes
from uchicagohvz.game.models import Kill

class KillIndex(indexes.SearchIndex, indexes.Indexable):
    text = indexes.CharField(document=True)
    killer = indexes.CharField(model_attr='killer')
    victim = indexes.CharField(model_attr='victim')

    def get_model(self):
        return Kill

    def index_queryset(self, using=None):
        #Used when the entire index for model is updated
        return self.get_model().objects

这里是我的kill_text.txt(位于templates / search / indexes /),

{{ object.killer }}
{{ object.victim }}

这里是我的search_sites.py(这是否需要?它不在设置教程中,但我在其他地方看到了它,同时试图找出出错的地方。)

import haystack
haystack.autodiscover()

这是我的settings.py

HAYSTACK_CONNECTIONS = {
    'default': {
        'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine',
        'PATH': os.path.join(os.path.dirname(__file__), 'whoosh_index'),
    },
}

0 个答案:

没有答案