У меня есть сериализатор в структуре Django REST, который определяется следующим образом:
class QuestionSerializer(serializers.Serializer):
id = serializers.CharField()
question_text = QuestionTextSerializer()
topic = TopicSerializer()
Теперь у меня есть два вида API, которые используют вышеупомянутый сериализатор:
class QuestionWithTopicView(generics.RetrieveAPIView):
# I wish to include all three fields - id, question_text
# and topic in this API.
serializer_class = QuestionSerializer
class QuestionWithoutTopicView(generics.RetrieveAPIView):
# I want to exclude topic in this API.
serializer_class = ExamHistorySerializer
Одним из решений является запись двух разных сериализаторов. Но должно быть более легкое решение условно исключить поле из заданного сериализатора.