Django休息框架中的条件验证

时间:2015-03-05 08:30:22

标签: python django django-rest-framework

我正在探索DRF并遇到一个问题。我有我的序列化程序类。

class NodeSerializer(serializers.Serializer):

    cpu  = CpuSerializer(required = True)
    ram  = RamSerializer(required = True)
    hdd  = HddSerializer(required = True)
    ssd  = SsdSerializer(required = True)
    name = serializers.CharField(required=True)
    type = serializers.ChoiceField(node_types)
    avg_iops = serializers.IntegerField(required=True)

现在基于type我的输入可以是不同的。如果类型是固定的,我的cpu输入应该只是整数,如果type是变量,我的cpu输入将是

CpuSerializer.  

我正在尝试验证这种情况。

    def to_internal_value(self, data):
        if data['type'] == 'fixed':
           do this 
        else:
            this is cpu serializer .
        return data

但是这样我又无法验证CpuSerializer键。

请帮助我在Django rest Framework中如何做到这一点。

由于

0 个答案:

没有答案