Django/Pinaxで、次のように始まるログインフォームに出くわしました:
<form class="login" method="POST" action="">
それは完全にうまく機能します。したがって、JavaスクリプトまたはDjangoフレームワークの何かが値をaction属性に入れていると思います。
それで、私の質問:
更新:これはDjangoのことではありませんが、ほとんどのブラウザーが行うことです。
ほとんどのブラウザで空の文字列のアクションがあると、ブラウザが現在ロードしているURLをフォームが指します。これは、最初にフォームを提供したスクリプトです。
空のアクションを持つフォーム読み取り このスレッド に関する興味深い洞察については、この問題に関する更新されたHTML5パースペクティブを提供します。
また、このページで読み込まれたjavascriptが、ページを使用しているアプリケーションに基づいて、ページが読み込まれたときにアクションを設定している可能性もあります。
もう1つの可能性は、JavaScriptがonsubmitイベントを処理していることです。ページが特定のページに再読み込みまたはリダイレクトされないようにするために、これを行う場合があります。
この投稿に答えるのは少し遅いと思います。とにかく、私はこれについて学んだことをします。
「アクション」がフォームで指定されていない場合、Djangoは対応するビューでHttpResponseRedirect
を検索します。
たとえば、次の例では次のようになります。
if form.is_valid(): # All validation rules pass
# Process the data in form.cleaned_data
# ...
return HttpResponseRedirect('/thanks/')
フォームが検証(および処理)されると、ページは「thanks」にリダイレクトされます