0
我有一個用戶輸入密碼的Django表單。我無法在本地驗證密碼;我調用外部API來設置密碼,如果出現問題,它會返回一條錯誤消息(即密碼太短,包含字典字等)Django表單驗證需要外部資源
API還需要用戶的登錄名,而不是該形式的元素,但在視圖中是已知的。
那麼,哪裏是做表格驗證的最佳地點?在窗體的clean()方法中,或在視圖代碼中?
如果我使用clean()方法,如何傳入用戶的登錄名?
謝謝。
我有一個用戶輸入密碼的Django表單。我無法在本地驗證密碼;我調用外部API來設置密碼,如果出現問題,它會返回一條錯誤消息(即密碼太短,包含字典字等)Django表單驗證需要外部資源
API還需要用戶的登錄名,而不是該形式的元素,但在視圖中是已知的。
那麼,哪裏是做表格驗證的最佳地點?在窗體的clean()方法中,或在視圖代碼中?
如果我使用clean()方法,如何傳入用戶的登錄名?
謝謝。
此驗證與表單有關,我認爲您應該將此驗證放在表單中。 您可以添加用戶名以形成數據並將其傳遞給表單。 例如,如果用戶名會出錯,您可以提出ValidationError
。 和其他消息password short
等似乎是驗證錯誤,所以應該在形式。
例如,您將request.POST
傳遞給表單。 你可以做這樣的事情:
data = request.POST.dict()
data['username'] = 'myusername'
form = Form(data)
什麼是添加的用戶名的形式字段,如果你總是需要它的問題呢?
用戶名輸入在以前的表單;如果用戶不得不再次輸入它,這將會令人困惑並且可能不明確。 – 2014-09-26 15:24:44
當然,但沒有必要向用戶顯示此字段:) Django表單不僅僅是用戶可以看到的,它是數據驗證的強大工具。 – coldmind 2014-09-26 15:27:18