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函数来控制