ListSerializer

2021-03-04  本文已影响0人  xncode

在普通serializer使用many=True创建时,会自动创建出ListSerializer

allow_empty默认是True,设置为False则不允许空列表传入

【自定义】
提供特殊的校验,例如列表中的一个元素不和其他元素冲突
想要自定义多元素的创建和修改操作

在想要修改的serializer的Meta中指定list_serializer_class

class CustomListSerializer(serializers.ListSerializer):
    class Meta:
        list_serializer_class = CustomListSerializer

创建CustomListSerializer这样改变默认的ListSerializer的行为

创建:默认的行为是在列表中的每一个元素上调用create,可在自定义的ListSerializer中重写create函数

修改:默认不支持修改,需要解决一些问题(怎样确认列表中的哪个元素来更新?插入怎样处理,失效还是创建新的?删除怎样处理,直接删除还是解除关联还是忽略还是失效?顺序怎么处理,改变位置是否有影响?)需要显式指定id,这样在方法中才能使用,默认生成的id是只读的

自定义初始化,默认把所有参数传递,可定义many_init函数来控制

上一篇下一篇

猜你喜欢

热点阅读