IntegrityError: Ограничение NOT NULL не сработало:
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
все TaskList
пользователя будут удалены, если вы удалите связанный с ним объект User
.
Если это желаемое поведение, null=True, default=None
не должен быть необходим и использоваться.
Если вы хотите сохранить TaskList
даже если User
будет удален, используйте on_delete=models.SET_NULL
, поскольку у вас уже есть TaskList
объекты со значениями None
для поля manage
.