Динамически изменять поля сериалайзера в зависимости от полученных 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__'