Django-Rest-Fram中的关系条件检查

2024-05-16 00:14:00 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我正在尝试验证Django rest framework json中至少需要一个字段。在

这是我的序列化程序类

class WorkloadPutSerializer(serializers.Serializer):

    vdi = VdiSerializer(required = False)
    db = DbSerializer(required = False)
    vm= VmSerializer(required = False)
    pk = serializers.IntegerField(read_only=True)

我想强制用户输入vdi或{},或者两者都输入。在

有什么方法可以在django rest框架中验证这个条件吗?请帮助我在django rest框架文档中找不到。在


Tags: django程序框架restjsonfalse序列化required
1条回答
网友
1楼 · 发布于 2024-05-16 00:14:00

为什么不重写序列化程序上的validate()?见Object-level validation

class WorkloadPutSerializer(serializers.Serializer):

    vdi = VdiSerializer(required = False)
    db = DbSerializer(required = False)
    pk = serializers.IntegerField(read_only=True)

    def validate(self, data):
        """
        Check if at least one of data['vdi'] or data['vm']
        exists and then return the data. Otherwise raise 
        ValidationError. 
        """
        if data['vdi'] or data['vm']:
            return data
        else:
            raise serializers.ValidationError("No No No")

相关问题 更多 >