Ala*_*ant 21 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)
Run Code Online (Sandbox Code Playgroud)
但是,当尝试使用此序列化程序而不提供详细信息时,我收到以下内容:
{u'details': [u'This field may not be null.']}
Run Code Online (Sandbox Code Playgroud)
鉴于文档,这似乎不正确?
有没有其他人遇到这个或可以验证这是一个错误?
Ala*_*ant 49
好的,所以Kevin Browns的评论是正确的.我需要添加allow_null = True.
class SerializerA(serializers.Serializer):
details = DetailsSerializer(required=False, allow_null=True)
Run Code Online (Sandbox Code Playgroud)
这样做的原因是,如果需要= False,则在构造串行器时,数据中不存在字段详细信息.
例如
s = SerializerA(data={})
而allow_null允许指定param但是为null.
例如
s = SerializerA(data={'details': None})
这开启了DRF Browsable API的另一个问题,但我会问另一个问题.
归档时间: |
|
查看次数: |
6187 次 |
最近记录: |