2
在Django Documentation中,驗證互相依賴的字段的建議方法是使用表格的clean()
方法。它是有道理的,但我正在處理的問題是如何通知視圖哪些字段導致問題。Django:驗證多個字段
當它只是一個領域誰是失敗的,我可以檢查它像這樣:
for field in form:
if field.errors:
# I know exactly in what field is the problem
但是,如果錯誤來自clean()
方法,我的一切是錯誤消息:
if form.errors:
for error in form.errors:
# I know there's a problem, and I got an error message,
# but I don't know what are the fields that cause it.
在典型的註冊表格中,您必須寫兩次郵件和兩次密碼以避免輸入錯誤。舉例來說,如果兩個密碼字段的值不同,我想要更改這兩個密碼字段的CSS類,但在視圖中,我沒有提及導致問題的小部件。我唯一的信息是表單的clean()
方法中的ValidationError引發的錯誤消息。我如何知道問題出在密碼字段還是電子郵件字段?我想解析這個錯誤信息不是要走的路。
我已經看到了,但問題是我所談論的錯誤涉及多個領域,而不僅僅是一個領域。 –
這有什麼關係?當您自己設置錯誤時,_you_決定將顯示哪個字段。你在尋找'form.non_field_errors'嗎? –
你說得對,謝謝你:-) –