2017-04-21 6 views
0

私は新しいDjangoプログラマーです。Getメソッドを使用してフォームからユーザー指定の値をURLアドレスに渡す方法については不思議でした。Django:自動生成されたURLをリダイレクトする "?search_bar ="

だから私は、この検索バーがあり、ユーザーがEnterキーを押すと、それは自動的に「?search_bar = USER_INPUT」

しかしUSER_INPUT変数を取るようにプログラムされている私のurls.py、のURLアドレスを作成します今私のURLアドレスを認識することができず、私のアドレスはもはやview.pyに進むために一致しません。

urls.py私は私がこの問題を解決する必要があり

urlpatterns = [ 
    url(r'^class/(?P<user_input>\w+)', views.newview), 
] 

私はあなたが単にあなたがURLディスパッチャ

urlpatterns = [ 
    url(r'^class/?search_bar=(?P<user_input>\w+)', views.newview), 
] 

でクエリ文字列と一致していなければならないので、次の操作を行うことができないことを理解できますか? url.pyに私の新しいアドレスを認識させ、users_inputをviews.pyに渡すには?

+0

JavaScriptを使用しないとできません。しかし、 'user_input = request.GET.get( 'search')'のように、GETクエリー文字列から 'user_input'にアクセスすると何が問題になりますか? – xyres

+0

クイック返信ありがとう。私の理解は、ユーザーがenterを押すとurl.pyを通過し、現在のURLを他のURLパターンと照合できない場合、自動的にエラーが発生してからviews.pyでuser_input = request.getを実行できます。 –

+0

その場合、以下の答えに示唆されているように、URLパターンを変更する必要があります。 – xyres

答えて

2

我々はおよそurlsomething/?search_bar=user_inputなどを話すとき、something/url一部であり、そして?search_bar=user_input部分はそうGET方法、に属し:

urls.py

urlpatterns = [ 
    url(r'^class/$', views.newview), 
] 

とあなたのview.pyで:

def newview(request): 
    user_input = request.GET['user_input'] 
    # or 
    # user_input = request.GET.get('user_input', None) 
関連する問題