在DRF序列化程序

时间:2017-09-25 08:55:49

标签: django django-rest-framework

在我的特定情况下,我想强制执行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规范。

0 个答案:

没有答案