Django:动态 url 通过提交按钮

Django: dynamic url via submit button

我想使用 Django 的动态 url 作为我数据库中的搜索选项。我为我的搜索词实现了一个输入文本字段和一个用于启动查询的提交按钮。因此,当我单击该按钮时,搜索结果的新 url 应包含文本字段中的术语(由用户编写)。

如何使用提交按钮而不是超链接来实现动态url?如何将我的文本字段的值放入我的 url?你能帮帮我吗?

这是我的(非工作)代码的一部分:

urls.py

urlpatterns = patterns('',
url(r'^$', views.IndexView.as_view(), name='index'),   
url(r'^search/(?P<term>\w{2}_[0-9.]+)/$', views.search, name='search'),)

views.py

def search(request, term ):
    search_term = request.GET['term']
    #generate results for search_term
    return render(request, 'app/results.html', {'list_of_r': list_of_r})

results.html

<form action="{% url 'app:search/{{term}}' %}" method="get">
{% csrf_token %}
             <input id="text_id" type="text"  name="term" maxlength="20"  />
             <input type="submit" value="submit" name="submit"/>
</form>

这不是您处理表格的方式:但您不需要这样做。表单提交的 GET 请求自动包含表单中的参数,这就是重点:因此,如果您提交到路径 /search,并且您的术语字段中的值为 "text_to_be_searched",则 URL 将是“/search?term=text_to_be_searched”。您无需执行任何其他操作。