2013-06-03 49 views
8

所以我試圖讓一些非常簡單的事情完成。我想在我的搜索框中輸入一個字詞,並將其顯示在生成的頁面上。在Django中編寫一個非常基本的搜索表單

我對HTML表單是

<form method="get" action="/results/" class="navbar-form pull-right"> 
<input type="text" id="searchBox" class="input-medium search-query" name="q" placeholder="Search"> 
<input type="submit" class="btn" value="Search" > 
</form> 

的views.py看起來是這樣的:

def search(request): 
    query = request.GET['q'] 
    t = loader.get_template('template/results.html') 
    c = Context({ 'query': query,}) 
    return HttpResponse(t.render(c)) 

最後的結果模板包含:

<div>You searched for: {{ query }} </div> 

這裏的網址。 py

urlpatterns = patterns('', 
url(r'^home/$', 'search.views.home'), 
url(r'^results/$', 'search.views.results'), 

{{ query }}空間中沒有顯示任何內容。

+0

您可以發佈您的'urls.py'嗎? –

回答

8

好了,所以在處理您的views.py搜索的動作應該是search但正如我在懷疑你的urls.py你沒有任何地方撥打search方法。

你在哪裏執行search方法?

的url應該是這樣的:

urlpatterns = patterns('', 
url(r'^home/$', 'search.views.home'), 
url(r'^results/$', 'search.views.search'), 
# or at least have a url for the search view 

注意,在您的形式

action屬性是action="/results/"。這意味着結果視圖是應該處理表單的人員。您也可以將其更改爲action="/search/"並讓您的網址如下所示:

urlpatterns = patterns('', 
url(r'^home/$', 'search.views.home'), 
url(r'^results/$', 'search.views.results'), 
url(r'^search/$', 'search.views.search'),