私の 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() は、提供されたフィールドを使用して DB にクエリを実行し、応答をレンダリングします。私の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 をより簡単に人間が解析して共有できるようにするため、あると便利です。