我读了很多关于这个主题的内容,但没有找到任何听起来像我的想法那样令人满意的东西,也不明白为什么它会引起问题。所以,如果你能看一眼......
我想在项目中期更改用户身份验证,即避免使用自定义用户模型,因为这需要在首次迁移之前完成。
我是否可以将电子邮件字段修改为editable=False
中的django.contrib.user.models
并添加修改后的save()
,以便从用户名更新电子邮件?或者反过来说?临
另一个一般性问题:我会在venv中做这些事情,还是可以将整个auth-folder复制为本地应用程序?
答案 0 :(得分:2)
首先,你的头衔似乎与你的问题无关;这是一件好事,因为使用电子邮件作为主键是一个非常糟糕的主意。人们一直在改变电子邮件地址,但PK必须保持不变。
其次,你绝对不应该复制contrib.auth代码。除了其他任何事情,这不会解决你的迁移问题,它只会让他们变得更糟。
更好的解决方案是在User上添加预保存信号,您可以在项目的任何位置执行此操作(最好是在AppConfig ready
方法中)。并且您不需要更改模型以使电子邮件不可编辑;你应该在使用该模型的表格中这样做。