Моделирование отношений "или-или" в Django Rest Framework - PullRequest
0 голосов
/ 07 января 2020

Скажем, у нас есть следующие сериализаторы:

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(), чтобы попытаться проанализировать это поле, используя каждый сериализатор, и вернуть тот, который анализирует первым? Или есть более чистый, канонический способ сделать это?

...