Reputation: 60
Hi I am trying to validate at least one of field is required in Django rest framework json .
Here is my serializer class
class WorkloadPutSerializer(serializers.Serializer):
vdi = VdiSerializer(required = False)
db = DbSerializer(required = False)
vm= VmSerializer(required = False)
pk = serializers.IntegerField(read_only=True)
I want to force user to enter either vdi
or vm
or both .
Is there any way to do validate this condition in django rest framework .Please help me out I am not able to find out in Django rest Framework Documentation .
Upvotes: 0
Views: 1466
Reputation: 16450
Why not overriding validate()
on serializer? See 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")
Upvotes: 1