Динамически изменять поля сериалайзера в зависимости от полученных query_params

Необходимо динамически изменять поля сериалайзера в зависимости от полученных query_params.

views.py

class ResultsViewSet(viewsets.GenericViewSet, mixins.ListModelMixin, mixins.RetrieveModelMixin):

    serializer_class = ResultSerializers
    permission_classes = [IsAuthenticated]

    def get_queryset(self):
        number = self.request.query_params.get('number')
        result_data = self.request.query_params.get('result_data')
        if number:
            qs = Result.objects.filter(number=number)
        # if result_data:(если в query_params получаю запрос на result_data с этого же Result то  поля сериалайзера выдают только поля с result_data: result/number=00001&result_data и таких запросов много что б по одному результату пользователь получал именно то поле-которое он просит )
        #      qs = Result.objects.filter(number=number).values('result_data')
        #

        else:
            qs = Result.objects.all()
        return qs


urls.py

urlpatterns = [
     path('', ResultViewSet.as_view({'get': 'list'})),
]
serializers.py 

class ResultSerializers(ModelSerializer):
    result_data = MediaResultSerializer(many=True)

    class Meta:
        model = Result

        fields = '__all__'

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