我已經更改了django.contrib.auth.user模型,我已將電子郵件ID設置爲唯一。這之後,我加入了datamigration以反映各項─django.contrib.auth.user的唯一電子郵件限制
蟒蛇manage.py datamigration APPNAME unique_password。 後面跟着python manage.py schemamigration appname --auto - > no changes。最後,python manage.py遷移appname。
遷移轉發到0003_unique_password
- 應用程序的名字:0037_unique_password.py
現在,當我加入其電子郵件是不是唯一的一個用戶,它給了我一個錯誤,不會讓我創建用戶通過django admin。但是,當我做: >
蟒manage.py殼
從django.contrib.auth.models導入用戶
- 用戶=用戶( 'cust1', '123' ,'xxx @ gmail.com') 即使'[email protected]'已經存在,這將創建一個用戶對象。
如何爲現有項目(包含數據)的django.contrib.auth.user.email添加唯一約束?
謝謝奧斯汀......但是如果我能在db級別做更多的事情?? !! –
您的遷移應該添加了db級別的限制。你的問題暗示'User('cust1','123','[email protected]')。save()'當數據庫中已經存在'xxx @ gmail.com'時不會產生異常? –
是的。它不會創建一個例外。它只是將這些值添加到數據庫:| –