Объединение двух сериализаторов в один

У меня есть ListApiView, где я перечисляю данные на сайте и на этой же странице я могу выбрать записи и экспортировать их в xl и pdf файл, сейчас я использую один и тот же сериализатор под названием ListingSerializer для экспорта данных в файл и их перечисления, для листинга данных и экспорта поля одинаковые, за исключением экспорта, у меня есть два дополнительных поля для экспорта, но сейчас мне нужно два сериализатора один для листинга ListingSerializer и другой для экспорта ExportSerializer без повторения полей.

class ListingSerializer(serializers.ModelSerializer):
    class Meta:
    
        model = Mymodel
        fields = '__all__'



class ExportSerializer(serializer.ModelSerializer):
    date_records_received = serializers.SerializerMethodField()

    class Meta:
        model = Mymodel
        fields = '__all__'


Class Mylist(ListAPIView):
    def get_queryset():
        return queryset
    
    def get_serializer():
        serializer = ListingSerializer(self.get_queryset(), many=True, context={'request': self.request})
        return serializer
    

Вы можете унаследовать форму другого сериализатора. В вашем примере:

class ListingSerializer(serializers.ModelSerializer):
    class Meta:
    
        model = Mymodel
        fields = '__all__'

class ExportSerializer(ListingSerializer):
    date_records_received = serializers.SerializerMethodField()

Вернуться на верх