Django Rest Framework JSON序列化程序字段验证失败,且required = False且没有默认值?

Liz*_*Liz 1 django django-rest-framework

如何为django rest框架JSON序列化器字段将required设置为false?无论是否需要标志,它似乎都在强制执行验证:

序列化器字段

results = serializers.JSONField(required=False, label='Result')
Run Code Online (Sandbox Code Playgroud)

模型场

results = models.TextField(blank=True, default="")
Run Code Online (Sandbox Code Playgroud)

但是,当我用空白输入提交表单时,我得到:

"results": [
    "Value must be valid JSON."
],
Run Code Online (Sandbox Code Playgroud)

我还尝试在model字段和serializer字段中将模型默认值更改为{},但响应相同。

更新

感谢@Linovia指出:“必填标志的确表示如果该字段不存在,则序列化程序不会抱怨”

经过一番挖掘之后,DRF似乎在输入上设置了默认值null,然后将其捕获为无效值...我该如何覆盖它,因为序列化器的“默认”属性似乎没有任何作用。

 "results": null,
Run Code Online (Sandbox Code Playgroud)

Lin*_*via 5

required标志确实意味着如果该字段不存在,则序列化程序将不会抱怨。但是,如果存在,它将遵循验证过程。这根本不意味着如果不进行验证就将其丢弃。