django-rest-framework - Django Rest Framework Nested Serializer required=False 错误

标签 django-rest-framework

在 DRF v3.1 中,我有一个嵌套的序列化器,很像文档中详述的序列化器 - http://www.django-rest-framework.org/api-guide/serializers/#dealing-with-nested-objects

class SerializerA(serializers.Serializer):
    details = DetailsSerializer(required=False)

但是,当尝试使用此序列化程序而不提供详细信息时,我收到以下信息:
{u'details': [u'This field may not be null.']}

鉴于文档,这似乎不正确?

有没有其他人遇到过这个或可以验证这是一个错误?

最佳答案

好的,所以 Kevin Browns 的评论是正确的。我需要添加allow_null=True。

class SerializerA(serializers.Serializer):
    details = DetailsSerializer(required=False, allow_null=True)

这样做的原因是,在构造序列化程序时,required=False 允许数据中不存在字段详细信息。

例如s = SerializerA(data={})
而 allow_null 允许指定参数但为空。

例如s = SerializerA(data={'details': None})
这打开了 DRF Browsable API 的另一个问题,但我会在另一个问题中提出这个问题。

关于django-rest-framework - Django Rest Framework Nested Serializer required=False 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29606115/

相关文章:

python - 根据方法返回不同的响应或数据 - Django rest framework

python - django rest framework "TypeError: ' type'对象不可迭代“错误

python - 相关模型上的django rest framework过滤器

django - 我可以在 Django Rest Framework 中使用带空格的字段名称吗?

Django - 查询如何查询自身?

python - Django Rest Framework - 如何将 kwargs 传递给 model.save()?

python - 如何替换或编辑 django rest 框架路由器中的查找参数?

Django Rest Framework 将数据发送到没有序列化程序的 View

python - Django REST Framework 序列化器验证错误

django - 如何使用 Django Rest Framework 创建多个模型实例?