Django Rest Framework 中的关系条件检查
Relational condition check in Django Rest Framework
您好,我正在尝试验证 Django 休息框架中至少需要一个字段 json。
这是我的序列化程序 class
class WorkloadPutSerializer(serializers.Serializer):
vdi = VdiSerializer(required = False)
db = DbSerializer(required = False)
vm= VmSerializer(required = False)
pk = serializers.IntegerField(read_only=True)
我想强制用户输入 vdi
或 vm
或两者都输入。
有什么方法可以在 django rest 框架中验证这个条件。请帮助我,我在 Django rest 框架文档中找不到。
为什么不在序列化器上覆盖 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")
您好,我正在尝试验证 Django 休息框架中至少需要一个字段 json。
这是我的序列化程序 class
class WorkloadPutSerializer(serializers.Serializer):
vdi = VdiSerializer(required = False)
db = DbSerializer(required = False)
vm= VmSerializer(required = False)
pk = serializers.IntegerField(read_only=True)
我想强制用户输入 vdi
或 vm
或两者都输入。
有什么方法可以在 django rest 框架中验证这个条件。请帮助我,我在 Django rest 框架文档中找不到。
为什么不在序列化器上覆盖 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")