“ HSH.Usuario.email :(型号E006)字段'email'与型号'HSH.usuario'的字段'email'相冲突”

时间:2019-06-03 05:06:22

标签: django

我正在尝试创建一个自定义用户模型,以便可以为我的网站使用三种不同类型的用户。

我正在使用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'.

这里到底发生了什么?我现在完全迷失了。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您不能使用AbstractUser来定义email,因为email中已经存在User Model.

您只需要为AbstractUser类添加其他所需的其他字段

如果您需要从django's default User model中删除所有字段,请使用AbstractBaseUser