Django AbstractUser继承错误

时间:2014-12-30 17:48:50

标签: python django abstract-class

我还是Django的新手,并且在定义我自己的用户模型时遇到了问题,该模型继承自Django中的Abstract User。但是,我已经有数据库中的用户(只有用户名和密码),当我尝试迁移更改时,我收到错误,即电子邮件字段是必需的,并且没有默认值。

让我感到困惑的是,我在文档中查找了它,在https://docs.djangoproject.com/en/1.7/ref/contrib/auth/,电子邮件字段明确列为可选项。此外,当我尝试覆盖电子邮件字段时,我收到一个错误,即我的字段与现有字段发生冲突。

为什么它会给我这个错误,我该如何解决?

models.py

from django.db import models
from django.contrib.auth.models import AbstractUser

class UserProfile(AbstractUser):
    additionalFields = models.IntegerField(default=0)

    def __unicode__(self):
        return self.username

1 个答案:

答案 0 :(得分:1)

EmailField是数据库中的文本字段,并且是空的'文本字段保存为空字符串('')。它们在数据库级别上不为空(NULL),并且该列定义为NOT NULL。您需要做的是设置默认值'',然后迁移将起作用。