2013-06-03 16 views
8

私はとても簡単に何かを得ることを試みています。検索ボックスに用語を入力して、結果のページに表示したいと思います。Djangoの非常に基本的な検索フォームを書く

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

そして最後に、結果のテンプレートが含まれています:フォームの

私の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は、このようになりますです

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

はここのURLです。 py

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

{{ query }}領域に何も表示されません。あなたのviews.pyで検索を取り扱うアクションがsearchことになっているが、私は疑うようごurls.pyあなたはどこにでもsearchメソッドを呼び出すことはありませんので、

+0

あなたは 'urls.py'を投稿できますか? –

答えて

8

[OK]をクリックします。

ここでsearchメソッドを実行しますか?それはaction="/results/"ある

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属性:

URLは次のようにする必要があります。つまり、結果ビューはフォームを処理するはずのものです。これをaction="/search/"に変更し、あなたのURLを次のようにしてもよいでしょう:

urlpatterns = patterns('', 
url(r'^home/$', 'search.views.home'), 
url(r'^results/$', 'search.views.results'), 
url(r'^search/$', 'search.views.search'), 
関連する問題