我正在尝试创建一个自定义用户模型,以便可以为我的网站使用三种不同类型的用户。
我正在使用django 2.2.1,在过去的几个月中我一直在进行非常匆忙的速成课程,因此,坦白地说我还不太擅长于此,我的大部分代码都是结果我以下其他人关于在线课程或stackoverflow的示例。
话虽如此,在完成了其中一门课程(专门为企业家对自定义用户模型的编码)之后,我试图通过继承AbstractUser类并添加标志以及一个对其他模型的外键来实现此目的,因为类型的用户需要存储有关他们的额外信息。
# From HSH.models.py
class Usuario(AbstractUser):
es_admin = models.BooleanField(default=False)
es_premium = models.BooleanField(default=False)
email = models.EmailField(unique=True)
id_perfil = models.ForeignKey(Perfil, on_delete=models.CASCADE)
USERNAME_FIELD = email
# From settings.py
AUTH_USER_MODEL = 'HSH.Usuario'
但是,当我尝试进行迁移时,出现以下错误消息:
SystemCheckError: System check identified some issues:
ERRORS:
HSH.Usuario.email: (models.E006) The field 'email' clashes with the field 'email' from model 'HSH.usuario'.
即使我更改了字段的名称,此错误仍然继续发生。
SystemCheckError: System check identified some issues:
ERRORS:
HSH.Usuario.mail: (models.E006) The field 'mail' clashes with the field 'mail' from model 'HSH.usuario'.
这里到底发生了什么?我现在完全迷失了。任何帮助将不胜感激。
答案 0 :(得分:0)
您不能使用AbstractUser
来定义email
,因为email
中已经存在User Model.
您只需要为AbstractUser
类添加其他所需的其他字段
如果您需要从django's default User model
中删除所有字段,请使用AbstractBaseUser
类