Скажем, у нас есть следующие сериализаторы:
from rest_framework import serializers
class FooSerializer(serializers.Serializer):
type = serializer.CharField()
data = serializer.DecimalField()
class BarSerializer(serializers.Serializer):
type = serializer.CharField()
data = serializer.DateField()
Теперь я хочу создать новый сериализатор с именем BazSerializer
, имеющий поле baz
, которое можно сериализовать в FooSerializer
или BarSerializer
в зависимости от type
. Какой лучший способ достичь этого? Должен ли я переопределить методы to_representation()
/ to_internal_value()
, чтобы попытаться проанализировать это поле, используя каждый сериализатор, и вернуть тот, который анализирует первым? Или есть более чистый, канонический способ сделать это?