2011-07-27 6 views
2

フォーク。私はHaystackチュートリアル/ドキュメントから私の(単純な)アプリケーションにジャンプすることはできません。haystackのビュー

私は、このチュートリアルではHaystack/Whooshが働いており、結果を提供しています。今では、別の検索ページではなく、アーカイブページのフォームから検索し、結果を同じページに戻したいと考えています。

私は、これは行くと検索フォームを表示し、クエリを返す持っている:

def blog_list(request, template_name="blog/blog_list.html"): 
    query=request.GET.get('q','') 
    form=ModelSearchForm({'q': query }) 

    extra_context = { 
     'query': query, 
     'form': form, 
    } 
    return object_list(
     request, 
     queryset=Entry.live.all(), 
     extra_context=extra_context 
    ) 

しかし、テンプレートで、{% for result in page.object_list %}は何も返していません。私の問題の半分は、page.object_listがどこから来ているのか分からず、チュートリアル/ドキュメンテーションからそれを理解できないということです。

誰でも私のためにこれについていくつかの光を当てることができますか?ありがとうございました。

+0

私は同じ問題を抱えています。私は簡単なカスタマイズされた検索を作成したいので、チュートリアルからジャンプすることはできません。あなたはそれを理解したことがありますか? – Atma

答えて

2

pageと呼ばれるものは渡されていないので、当然空です。あなたが特にそれを渡さない限り、どこから来るのではありません。

実際には検索を実行して結果をテンプレートに渡しているようです。 Haystackに組み込まれているbasic_search viewでどのように処理されているかを見てください。フォームの.search()メソッドを呼び出し、結果をPaginatorクラスに渡してから、コンテキストに渡します。

+0

'(r '^ search /'、include( 'haystack.urls'))を設定すると、特に何も渡されていないと返信できると思います。しかし、操縦者のおかげで、私は 'basic_search'を見てすぐに落ちました(そして、私が見ていたことを理解しました)。 – Richard