为什么我会收到完整性错误 Django?
Why am I getting an integrity error django?
我正在构建一个带有自定义用户模型的 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 Whosebug 问题中提供了更多详细信息。
为什么会出现完整性错误,我该如何解决?
错误表明您的 job_history 字段仍在数据库中,并且由于某种原因您的迁移没有成功。因此,您需要查看迁移失败的原因。您可以尝试进行假的初始迁移:
python manage.py makemigrations app_name
python manage.py migrate --fake-initial
我很确定这应该有所帮助,但如果这也没有帮助,您总是可以直接转到您的数据库并从数据库
中删除 job_history_id 列
我正在构建一个带有自定义用户模型的 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 Whosebug 问题中提供了更多详细信息。
为什么会出现完整性错误,我该如何解决?
错误表明您的 job_history 字段仍在数据库中,并且由于某种原因您的迁移没有成功。因此,您需要查看迁移失败的原因。您可以尝试进行假的初始迁移:
python manage.py makemigrations app_name
python manage.py migrate --fake-initial
我很确定这应该有所帮助,但如果这也没有帮助,您总是可以直接转到您的数据库并从数据库
中删除 job_history_id 列