在我的 Django 网站上,我有一个包含几个可选字段的搜索页面。搜索页面是一个django表单,我的视图功能是典型的:
def search(request):
form = SearchForm(request.GET or None)
if form.is_valid():
return form.display_results(request)
return render(request, 'search.html', {'form': form})
Form.display_results() 使用提供的字段来查询数据库并呈现响应。我的 search.html 包括:
<form action="/search/" method="get">{% csrf_token %}
<!-- Render the form fields -->
<input type="submit" value="Search" />
<input type="reset" value="Reset form" />
</form>
由于大多数搜索会有几个空白字段,我不想将它们包含在 search.html 上的提交按钮发出的 GET 请求中。当前搜索看起来像:
http://mysite/search/?csrfmiddlewaretoken=blah&optional_field1=&optional_field2=&optional_field3=oohIWantThisOne
我希望它们看起来像:
http://mysite/search/?csrfmiddlewaretoken=blah&optional_field3=oohIWantThisOne
当然,我还有几个领域。这会很好,因为它会使搜索 URL 更容易被人类解析和共享。