django.db.utils.integrityerror: (1048, "Column 'phone' cannot be null")
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<记得执行数据库迁移命令>