创建位置实例时,出现此错误。
django.db.utils.IntegrityError: null value in column "address" violates not-null constraint
这是我的定位模型。
class Location(DirtyFieldsMixin, TimeStampedModel):
id = SmallUUIDField(
default=uuid_default(),
primary_key=True,
db_index=True,
editable=False,
verbose_name='ID'
)
name = models.CharField(max_length=100)
address = models.TextField(blank=True)
timezone = models.CharField(null=True, max_length=100)
phone = PhoneNumberField(blank=True)
email = models.EmailField(blank=True)
发布位置时,有效载荷看起来像这样。
{'name': 'Beij the Sage', 'address': None, 'latlon': None, 'timezone': 'America/Los_Angeles', 'phone': '', 'email': ''}
我对模型有blank=True
,因此对值None
有address
不会引发此错误。
答案 0 :(得分:1)
blank=True
仅控制表单级验证。您在数据库验证层遇到错误,因为该字段默认为null=False
。要保存空值,必须将null=True
添加到构造函数kwargs中。
address = models.TextField(blank=True, null=True)