django rest framework:serializer.JSONField browsable api输入初始值设置为null(验证失败)?

django rest framework:serializer.JSONField browsable api输入初始值设置为null(验证失败)?,django,django-rest-framework,Django,Django Rest Framework,我有一个serializer.JSONField,但是当我查看可浏览的API时,表单输入的初始值设置为null。但是,这会导致DRF自身的验证失败: django.db.utils.IntegrityError: null value in column "state" violates not-null constraint 模型字段: state = models.TextField(blank=True, default='') 序列化程序字段: state = serializers

我有一个serializer.JSONField,但是当我查看可浏览的API时,表单输入的初始值设置为null。但是,这会导致DRF自身的验证失败:

django.db.utils.IntegrityError: null value in column "state" violates not-null constraint
模型字段:

state = models.TextField(blank=True, default='')
序列化程序字段:

state = serializers.JSONField(label='QB State', required=False, allow_null=False, default=' ')
还尝试:

state = serializers.JSONField(label='QB State', required=False, default=' ')
state = serializers.JSONField(label='QB State', required=False, default='')
state = serializers.JSONField(label='QB State')

如何防止可浏览API表单预填充无效字符串:null?我错过了什么?提前感谢:)

将allow_null=True并选中,同时将null=True添加到模型字段django明确指出,应避免在基于字符串的字段中使用null:我可以理解,但由于您使用的是默认值,将插入默认值,因此NULLModel没有问题:state=models.TextField(blank=True,default='',null=True)Serializer:state=serializers.JSONField(label='QB state',required=False,default='',allow_null=True)实际上会将null插入数据库…:(