認証が失敗した場合、djangoのログインフォームで「無効なユーザー名またはパスワードの行に沿ってエラーメッセージを表示したいですが、これをやり遂げる最善の方法が何であるかはわかりません。 私は、テンプレートに渡されるコンテキスト変数を設定してから、CSSを使ってフォームにメッセージを提示することができました。以下のような何か:無効なログインの詳細メッセージを表示する最善の方法 - djangoフォーム
if user is not None:
if user.is_active:
# Redirect to a success page.
else:
# Return a 'disabled account' error message
else:
form = LoginForm()
incorrect_login = True
context = ('incorrect_login': incorrect_login, 'form':form)
return render(request, 'home/home.html', context)
# Return an 'invalid login' error message.
とHTML:
<form action="." method="POST"> {%csrf_token%}
{%if incorrect_login%}
<table class='failed_login'>
{{form.as_table}}
</table>
{%else%}
<table class='successful_login'>
{{form.as_table}}
</table>
{%endif%}
<p><input type='submit' value='Submit'></p>
</form>
<!--Dont worry about the exact implementation of the html, its the basic idea im concerned with-->
これは共通の問題であるようにしかし、私は感じるので、フォーム内のジャンゴが提供するよりよい解決策がありそうです。私はフォームを使って作業することについてドキュメントを調べましたが、アプローチする方法がわかりません。主な問題は、フォームフィールドに格納されているエラーが入力タイプの検証にあると思われることです。どのような助けや正しい方向への指摘も感謝します。
はDjangoのを見て、[メッセージのフレームワーク](https://docs.djangoproject.com/en/1.9/refを取ります/ contrib/messages /) – GwynBleidD
メッセージフレームワークは素晴らしいですが、*フォームエラーです。フォームのコンテキストで表示する必要があります。フォームは、グローバルエラーとフィールドエラーの両方を持つことができます。これは、テンプレートの 'form.errors'を介してアクセス可能な、フォームの上部に現れるべきグローバルエラーのようです。 – Shovalt