2016-04-16 15 views
2

私はWhooshバックエンドでDjango-Haystackを使用しています。クエリを実行すると結果は得られません。私は、HaystackのドキュメントでDjangoシェルに次のように入力することで、デバッグの手順を試してみました。私が望むすべてのテキストが索引付けされていることがわかりました。Django-Haystackは検索フォームに結果を返しません

from haystack.query import SearchQuerySet 
sqs = SearchQuerySet().all() 
sqs.count() 
sqs[0].text 

マイsearch.htmlのページ(ドキュメントから直接コピーされた)次のセクションがあります。

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

私は他に何を試すことができますか?

答えて

2

私は何が起こっているのか分かりませんが、例ではpage.object_listが機能しますが、実際のプロジェクトではpageのプレフィックスを削除する必要がありました。把握するのは痛い。

は今、この作品:

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

noobieはジャンゴ・干し草とヒューという音を試して、干し草の山のドキュメント上の様々なチュートリアルの断片を以下のように、私はあなたと同じ問題を抱えていた: 該当する結果が現れていませんでしたEmptySearch()を実行したときに、SearchFormをオーバーライドしてすべてを表示したにもかかわらず、 search.htmlのテンプレートの「ページ」プレフィックスを削除

def no_query_found(self): 
    return self.searchqueryset.all() 

あなたが言うように

は、トリックをした、と良い一時的な解決策でした。しかし、結果を改ページするときに問題になりました。だから、周りを見渡した後、解決策は "page"の代わりに "page_obj"という接頭辞を使用し、すべてが期待どおりに機能するようにすることでした。問題は、haystackチュートリアルではページオブジェクトが「ページ」と呼ばれ、djangoの特定のバージョンは「page_obj」と呼ばれていると仮定しているようです。よりよい答えがあると確信しています。私は、限られた発見しか報告していません。

関連する問題