[英]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.