我正在使用自定义用户模型构建django Web应用程序。在我提交表单的注册过程结束时,会发生完整性错误。
这是错误:
Exception Type: IntegrityError
Exception Value: NOT NULL constraint failed: accounts_user.job_history_id
此错误表示名为job_history的自定义用户模型中的字段不能为空。然而,这样的领域甚至不存在。
这是我的自定义用户模型:
class User(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(unique=True)
username = models.CharField(max_length=40, unique=True)
avatar = models.ImageField(blank=True, null=True)
date_joined = models.DateTimeField(default=timezone.now)
is_active = models.BooleanField(default=True)
is_staff = models.BooleanField(default=False)
objects = UserManager()
USERNAME_FIELD = "email"
REQUIRED_FIELDS = ["username", "password"]
def __str__(self):
return "@{}".format(self.username)
def get_short_name(self):
return self.username
我不知道这个错误是指什么以及它为什么会发生。我在之前的位置添加了名为job_history
的字段,但之后将其删除并相应地更新了数据库。当我正在摆弄Job和User模型以便实现能够存储用户先前完成的作业的字段时,才会出现此错误。有关详细信息,请参阅this stackoverflow问题。
为什么会出现完整性错误以及如何解决?
答案 0 :(得分:1)
错误表明您的job_history字段仍在数据库中,并且出于某种原因,您的迁移无效。所以你需要看看为什么你的迁移不起作用。您可以尝试进行虚假的初始迁移:
python manage.py makemigrations app_name
python manage.py migrate --fake-initial
我很确定这应该会有所帮助,但是如果这也没有用,你总是可以直接进入你的数据库并从DB中删除job_history_id列