我在Django中根據django.contrib.auth
來滾動我自己的自定義註冊模塊。我的註冊模塊將有一些額外的功能,並幫助我減少我目前使用的其他django模塊的依賴,如django-registration和django-emailchange。我已經遇到了一個什麼最好的方式來做它的問題。我應該在視圖,模型還是管理器中放置自定義註冊碼?
注意:所有用戶帳戶都基於django.contrib.auth.models.User
模型。
當用戶點擊「註冊」鏈接時,請求會傳遞到我的視圖register
。我有一個自定義表單,它有四個字段 - 用戶名,電子郵件,密碼1和密碼2。該表格基於django.forms.Form
。該表格提供了基本的驗證, passoword1和password2是電子郵件;電子郵件/用戶名不存在。
當數據被恢復到我的註冊視圖時,我調用表格的is_valid()
方法,之後,我通過調用中的名爲create_user()
的管理器方法創建新用戶。在這一點上,我需要添加更多的自定義功能,比如發送激活郵件等。作爲一種最佳實踐方法,這種邏輯應該放在哪裏?這是否應該在User
模型的方法中?它應該是現在的位置 - 模型的經理?或者應該將其放入我的註冊表單的自定義save()
方法中?
謝謝。
很好的答案。我真的在想「不要把它放在保存方法中」,但重新閱讀我的答案後,我沒有這樣解釋。而不是重寫它,我正在收回那部分。 – 2010-07-13 15:37:40