簡體   English   中英

IntegrityError:NOT NULL 約束失敗:

[英]IntegrityError: NOT NULL constraint failed:

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


class TaskList(models.Model):
    manage = models.ForeignKey(User, on_delete=models.CASCADE, default=None)
    task = models.CharField(max_length=300)
    done = models.BooleanField(default=False)

    def __str__(self):
        return self.task + " - " + str(self.done)

我不斷收到此錯誤:NOT NULL constraint failed: new__todolist_app_tasklist.manage_id 在我“python manage.py migrate”之后。

有什么建議么?

嘗試將ForeignKey設置為null=True以允許None值,因為這是您定義的默認值。

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


class TaskList(models.Model):
    manage = models.ForeignKey(User, on_delete=models.CASCADE, null=True, default=None)
    task = models.CharField(max_length=300)
    done = models.BooleanField(default=False)
    # ...

當您設置on_delete=models.CASCADE時,如果您刪除相關的User對象,則將刪除用戶的所有TaskList 如果這是所需的行為, null=True, default=None不應該是必要的和使用。

如果您想保留TaskList即使User被刪除,請使用on_delete=models.SET_NULL ,因為 yopu 已經有TaskList對象的manage字段值為None

暫無
暫無

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

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