Проверка состояния отношений в Django Rest Framework
Привет, я пытаюсь проверить, по крайней мере, одно из полей, обязательных для Django остальные рамки JSON.
Вот мой сериал класс
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 Framework. Пожалуйста, помогите мне, я не могу найти в Django rest Framework Documentation .
1 ответ
Решение
Почему бы не переопределить validate()
на сериализаторе? См. Проверка уровня объекта
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")