如果身份驗證失敗,我希望向用戶顯示一條錯誤消息,其中包含'無效的用戶名或密碼,請重試'以獲得django中的登錄表單,但是im不知道這樣做的最好方法是什麼。 我已經考慮設置一個上下文變量,它將被傳遞到模板中,然後我可以使用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提供更好的解決方案。我已經研究過關於處理表單的文檔,但是我不知道如何處理,主要的問題是存儲在表單字段中的錯誤似乎更多地關於驗證輸入類型。任何幫助或正確的方向點將不勝感激。
採取看看Django的[信息框架(https://docs.djangoproject.com/en/1.9/ref/contrib/messages /) – GwynBleidD
消息框架很好,但是這*是一個表單錯誤,應該在表單的上下文中顯示。表單可能有全局錯誤和現場錯誤。這看起來像是應該出現在表單頂部的全局錯誤,可以通過模板中的form.errors訪問。 – Shovalt