DRF -字典列表的序列化器



我有一个序列化器类返回"single"数据好,比如:

class MySerializer(serializers.Serializer):
num: Decimal = serializers.DecimalField(max_digits=10, decimal_places=4, required=True
uid: str = serializers.CharField(max_length=30, required=True)

.

我想给这个序列化器添加一个参数(other),它将返回一个字典列表,但是我不知道怎么做。

other的结构是这样的:

[
{'p1': int,
'p2': int,
'p3': {another dict which has already a serializer class}
}
]

实现这一目标的方法是什么?

如果我添加序列化器。DictField或序列化器。ListField总是返回'list'对象没有属性'items' attributeerror ';或PoCo类型的对象不是JSON可序列化的。少是我的一个类。

使用serializers.SerializerMethodField.

class MySerializer(serializers.Serializer):
num: Decimal = serializers.DecimalField(max_digits=10, decimal_places=4, required=True
uid: str = serializers.CharField(max_length=30, required=True)
other = serializers.SerializerMethodField("get_other_filed)
def get_other_field(self,obj):
result = {} # Your dict
return result

最新更新