在我的特定情况下,我想强制执行ListSerializer的给定迭代的长度。我做了以下,它的工作原理。但是,它是拦截数据的正确位置吗?我怎样才能在最早阶段拦截?
class CustomListSerializer(serializers.ListSerializer):
def __init__(self, *args, **kwargs):
count = kwargs.pop('count', None)
self.count = count
super().__init__(*args, **kwargs)
def to_representation(self, data):
if self.count is not None:
if len(data) != self.count:
raise serializers.ValidationError("Incorrect list size")
请注意,validate
方法用于传入数据(JSON /序列化为本机类型),我正在寻找强制传出(序列化)数据的结构以符合API规范。