ModelForms是防止重複創建模型定義的好方法。我想要做的就是利用該功能,並且不僅僅用於處理POST請求。我使用表單進行驗證。django中的ModelForms僅用於發佈嗎?
例子:
假設你有一個字段(電子郵件,密碼,名字,姓氏)的用戶模型。電子郵件字段是唯一的索引。
UserCreationForm:使用所有字段,如果電子郵件已存在則驗證失敗。處理POST請求 UserUpdateForm:相同的模型,但不允許更改電子郵件。因爲這個領域被排除在那裏沒有問題。 UserAuthenticationForm:只包含電子郵件和密碼字段。問題是,這應該用於認證和驗證失敗,因爲電子郵件已經存在。
有沒有一種方法可以做到這一點?也就是說,讓UserAuthenticationForm跳過電子郵件檢查。
謝謝。
這將是一個非常奇怪的調整,可能會影響您的代碼後,編碼認證的形式並不難。你會更好地遵循編程原則*關注點分離* http://en.wikipedia.org/wiki/Separation_of_concerns,並讓軟件的每個部分都集中在自己的目標上。 –
嗯..我不認爲邏輯分離是問題。這個表格正在做一些非常有用的東西。 –
我在評論中的含義與你在答案中的含義相同。您有用於創建/更新對象的表單,請勿將其用於日誌用戶。只用它來創建它。 –