django.db.utils.integrityerror: (1048, "Column 'phone' cannot be null")

发布时间 2023-06-01 11:06:21作者: tslam

1 背景:

模型表中字段为:

phone = models.CharField(default='', max_length=64, verbose_name=u'电话', blank=True)

 

2 分析:

在保存模型实例时, phone被设置为空值. 但是该字段在数据库中被设置为(NOT NULL),因此导致完整性约束错误.

 

blank=True, Django模型验证中,允许该字段为空值;但是在数据库层面,该字段的约束仍然是非空的(NOT NULL), 意味着,在保存模型实例时,phone’字段不能为空

 

3 解决:

办法1:

在保存模型实例之前,检查如phone字段是否为空, 若为空,则给其一个默认值

:

my_object = MyModel.objects.create(...)

if not my_object.phone:

    my_object.phone = ''

my_object.save()

 

办法2:

模型表字段添加: null=True<记得执行数据库迁移命令>