So the problem is I would like to choose the serializer to be used to serialize a particular field based on the value of another field, so for example (pseudocode):
class SerializerA(serializers.Serializer):
...
class SerializerB(serializers.Serializer):
...
class OverruleSerializer(serialzers.Serializer):
resolve_type = serializers.CharField()
sut_name = serializers.CharField()
overrule_data = SerializerA if resolve_type == "some_type" else SerializerB
Is this possible? I have tried using SerializerMethodField, or overriding to_representation, but no luck
That's what you want to achieve..!
def get_overrule_data(self, obj):
resolve_type = obj.get('resolve_type')
data = obj.get('overrule_data')
if resolve_type == "some_type":
serializer = SerializerA(data=data)
else:
serializer = SerializerB(data=data)