Объединение двух сериализаторов в один
У меня есть 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()