Ошибка ограничения NOT NULL в django, несмотря на то, что для null установлено значение true, а для пустого - true - PullRequest
0 голосов
/ 09 сентября 2018

Вот код:

class community(models.Model):
    communityName = models.CharField(max_length=280)
    communityID = models.BigIntegerField(null=True,blank=True)
    icon = models.CharField(max_length=400)

    def __str__(self):
        return self.communityName

class team(models.Model):
    date = models.DateField()
    startTime = models.TimeField()
    teamName = models.CharField(max_length=280)
    community = models.ForeignKey(community, on_delete=models.CASCADE, default=None)

Я много читал об этом, и имеет смысл установить пустое и пустое значение true, чтобы предотвратить эту ошибку, однако, когда я пытаюсь перенести модели, я все равно получаю следующую ошибку:

django.db.utils.IntegrityError: NOT NULL constraint failed: scheduler_team.community_id

Я ничего не знаю об управлении базами данных, и это первый проект, который я пытался сделать, в котором задействована база данных, поэтому ELI5 будет очень признателен, спасибо!

1 Ответ

0 голосов
/ 09 сентября 2018

Сделайте так в своей team модели:

community = models.ForeignKey(community, on_delete=models.CASCADE,  blank=True, null=True)

Это правильный способ сделать его обнуляемым. Когда вы указываете default=None, Django ORM не знает, является ли это поле пустым или нет. community_id - это поле в модели team, и оно (хотя и синтаксически неявное) используется для ссылки на модель community по внешнему ключу в модели team, и это поле было установлено как необнуляемое, так что генерируется IntegrityError , если не установлено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...