我目前正在尝试通过删除用户名字段并仅用电子邮件字段替换它来在Django中创建我自己的用户身份验证模型。
模型存储在app.user
中的自己的文件中。
我一直收到这个错误:
app.User:(auth.E003)'User.email'必须是唯一的,因为它被命名为'USERNAME_FIELD'。
现在,我将电子邮件字段的行更改为:
email = models.EmailField(unique = True)
但由于某种原因,我似乎无法让它咬,或在该文件中的任何编辑。实际上我可以删除该文件,runserver
即使在完全重启时也会说同样的错误。
只要我对settings.py进行了编辑,或者咬了它就会工作,而不刷新用户模型的缓存(只更新它检测到编辑的缓存)。
这让我相信对这个文件的编辑没有正确更新它的pycache。
如何让Django扫描和更新此文件?
答案 0 :(得分:1)
将您的自定义用户模型移动到app.models并设置AUTH_USER_MODEL='app.User'
。 Django将AUTH_USER_MODEL值解析为' app_name.model_name'然后尝试from app_name.models import model_name
,所以如果模型不在models.py中,则无法找到。
以下是供参考的文档链接:https://docs.djangoproject.com/en/1.8/topics/auth/customizing/#substituting-a-custom-user-model