django.db.utils.IntegrityError:“地址”列中的空值违反了非空约束

时间:2019-05-14 22:49:01

标签: python django django-models django-rest-framework

创建位置实例时,出现此错误。 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,因此对值Noneaddress不会引发此错误。

1 个答案:

答案 0 :(得分:1)

blank=True仅控制表单级验证。您在数据库验证层遇到错误,因为该字段默认为null=False。要保存空值,必须将null=True添加到构造函数kwargs中。

address = models.TextField(blank=True, null=True)