我有一个具有可选字段的对象.我这样定义了我的串行化程序:
class ProductSerializer(serializers.Serializer):
code = serializers.Field(source="Code")
classification = serializers.CharField(source="Classification", required=False)
如果这个字段不存在,I thought required=False
会做绕过它的工作.但是,文档中提到这会影响反序列化,而不是序列化.
我发现以下错误:
'Product' object has no attribute 'Classification'
当我try 访问.data
个序列化实例时就会发生这种情况.(这不意味着是反序列化引发了这一问题吗?)
对于没有Classification
个的实例,会发生这种情况.如果我在序列化程序类中省略了Classification
,那么它就可以正常工作.
我怎样才能正确地做到这一点呢?即,使用可选字段序列化对象.