Ein Feld im Django-REST-Framework-Serializer dynamisch ausschließen oder einbeziehen

Habe ich ein serializer in Django REST framework wie folgt definiert:

class QuestionSerializer(serializers.Serializer):
    id = serializers.CharField()
    question_text = QuestionTextSerializer()
    topic = TopicSerializer()

Nun habe ich zwei API-Ansichten, die die oben genannten serializer:

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

Eine Lösung ist das schreiben von zwei verschiedenen serialisierungsprogramme. Aber es muss doch eine einfachere Lösung bedingt ausschließen, ein Feld aus einem bestimmten serializer.

InformationsquelleAutor der Frage Sudip Kafle | 2015-01-14

Schreibe einen Kommentar