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.

Вернуться на верх