Django - 根据下拉列表更改发送表单的路由

Django - Change the route of sending a form based on dropdown

本文关键字:表单 路由 下拉列表 Django      更新时间:2023-09-26

我目前正在制作一种内部搜索引擎,在下拉列表中有多个选项,它一开始可以工作,但我想更改表单以根据下拉列表获取网址,这样我就可以得到:

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">

谢谢你的时间。

问候

你可以

用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 的可能性。