3

私の 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 をより簡単に人間が解析して共有できるようにするため、あると便利です。

4

4 に答える 4

6

ボタントリガーでjQueryを使用できます。フォームと送信ボタンの ID を指定します。

$("#button_id").click(function(){
    $("input").each(function(){
        if($(this).val() == '') {
            $(this).remove();
        }
    });
    $("#form_id").submit();
});

それ(または同様のもの)は、送信前に空のフィールドをすべて削除する必要があります。

于 2013-08-23T19:09:33.180 に答える
2

フォームを POST することもできます。次に、検索 URL を作成し、空の値を削除してリダイレクトします。

于 2013-08-23T19:12:45.837 に答える