2016-01-15 48 views
1

我目前正在製作一種內部搜索引擎,並在下拉菜單中有多個選項,它起初工作但我想更改表單以獲取基於下拉,這樣我就可以得到:Django - 根據下拉列表更改發送表單的路由

example.com/search/**Option_Value_Here**/?q=my+query 

我使用Django的框架

<form action="/search/" method="get"> 
    <input name="q" id="query" value="{{ query }}" type="text" autocomplete="off"> 
    <select id="category" name="select-name" method="get"> 
     <option value="Jose">Jose</option> 
     <option value="Mike">Mike</option> 
     <option value="Mary_Ann">Mary Ann</option> 
     <option value="chaplin">Chaplin</option> 
    </select> 
    <input value="Search" class="fit" type="submit"> 
</form> 

我的問題是,如果有一種方法,我可以改變形式的路徑行動:

<form action="/search/{{ Option_Value_Here }}}/" method="get"> 

感謝您的時間。

問候

回答

0

你可以做到這一點的JavaScript/jQuery的。

<form id="myform"> 
... 
</form> 

$(".category").change(function(){ 
    value = $(this).val() 
    $('.myform').attr('action', "/search/" + value) 
}); 

請記住將代碼放置在$(document).ready()偵聽器中。


想要避免的JavaScript? 您可以直接在模板中獲取值。您不能如果用戶更改下拉值,則更改該值:在這種情況下,您唯一的機會就是根據他在下拉列表中選擇的內容重定向您的views.py中的用戶。

記住:Django只是呈現一個頁面並將其發送給用戶。無論在向您的服務器發起新調用之前發生的任何事情都不是Django的可能性,而是JavaScript的可能性。

+0

感謝您的時間,它的工作原理;) –