2016-01-15 57 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

感谢您的时间,它的工作原理;) –