2011-07-27 72 views
2

民間。我只是無法從Haystack tutorial/docs跳到我的(簡單)應用程序。視圖中的乾草堆

我已經有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