尽管将null设置为true并将blank设置为true,但Django中的NOT NULL约束失败错误

时间:2018-09-09 00:09:58

标签: python django database model

代码如下:

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)

我已经做了大量的阅读,为了防止此错误,我应该将null和blank设置为true是有意义的,但是当我尝试迁移模型时,仍然会引发以下错误: / p>

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

我对数据库管理一无所知,这是我尝试做的第一个涉及数据库的项目,非常感谢ELI5!

1 个答案:

答案 0 :(得分:0)

在您的team模型中像这样:

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

这是使其可为空的正确方法。 当您指定default=None时,Django ORM不知道此字段是否可为空。 community_idteam模型中的字段,(尽管在语法上是隐式的)用于通过community模型中的外键引用team模型,并且该字段设置为不可为null,因此会生成 IntegrityError (如果未设置)。