簡體   English   中英

為什么我收到完整性錯誤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的字段不能為null。 但是,這樣的字段甚至不存在。

這是我的自定義用戶模型:

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模型以實現能夠存儲用戶先前完成的作業的字段時,才開始出現此錯誤。 有關堆棧溢出問題的更多詳細信息。

為什么會發生完整性錯誤,我該如何解決?

該錯誤表明您的job_history字段仍在數據庫中,由於某種原因,您的遷移無法正常進行。 因此,您需要查看遷移為何不起作用的原因。 您可以嘗試進行假的初始遷移:

python manage.py makemigrations app_name
python manage.py migrate  --fake-initial

我很確定這會有所幫助,但是如果仍然不能解決問題,您總是可以直接進入數據庫並從數據庫中刪除job_history_id列

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM