在普通serializer使用many=True創(chuàng)建時,會自動創(chuàng)建出ListSerializer
allow_empty默認是True氓英,設置為False則不允許空列表傳入
【自定義】
提供特殊的校驗规肴,例如列表中的一個元素不和其他元素沖突
想要自定義多元素的創(chuàng)建和修改操作
在想要修改的serializer的Meta中指定list_serializer_class
class CustomListSerializer(serializers.ListSerializer):
class Meta:
list_serializer_class = CustomListSerializer
創(chuàng)建CustomListSerializer這樣改變默認的ListSerializer的行為
創(chuàng)建:默認的行為是在列表中的每一個元素上調用create捶闸,可在自定義的ListSerializer中重寫create函數(shù)
修改:默認不支持修改,需要解決一些問題(怎樣確認列表中的哪個元素來更新拖刃?插入怎樣處理删壮,失效還是創(chuàng)建新的?刪除怎樣處理兑牡,直接刪除還是解除關聯(lián)還是忽略還是失效央碟?順序怎么處理,改變位置是否有影響均函?)需要顯式指定id亿虽,這樣在方法中才能使用,默認生成的id是只讀的
自定義初始化苞也,默認把所有參數(shù)傳遞洛勉,可定義many_init函數(shù)來控制