Как передать json-параметр в метод get (drf)?

class getAlarmlogsFilterByDistincts(APIView):
    permission_classes = (IsAuthenticated,)

    def get(self, request, *args, **kwargs): 
        column_name = request.data['column_name'] #just an idea, dont works
        distincts_list = request.data['distincts_list'] #just an idea, dont works
        column_values = [Alarmlog.objects.filter(**{column_name: x}) for x in distincts_list ]
        
        serialized_response = AlarmlogSerializer(column_values)

        return Response(serialized_response.data, status=status.HTTP_200_OK)

Моя задача выглядит примерно так. Мне нужно получить строку в column_name и список в distincts_list (возможно, в формате json).

Что я пробовал:

class AlarmlogsFilterByDistinctsSerializer(serializers.Serializer): 
    distincts_list = serializers.ListField()
    column_name = serializers.CharField()  


class getAlarmlogsFilterByDistincts(CreateAPIView):
    permission_classes = (IsAuthenticated,)
    serializer_class = AlarmlogsFilterByDistinctsSerializer

    def post(self, request, *args, **kwargs): 

        column_values = columnFilter(request.data['column_name'], request.data['distincts_list'])
        
        response_serialized = serializers.serialize('json', column_values)

        print(response_serialized)
        return Response(response_serialized, status=status.HTTP_200_OK)

я пытался использовать метод post, но мой ответ выходит в виде строки: "[{\"model\": \"alarms.alarmlog\", \"pk\": 26, \"fields\": {\"created_at\": \"2023-01-12T17:06:19.016Z\", \"updated_at\": \"2023-01-12T17:06:19.016Z\", \"name\": \"string43\", \"description\": \"string\", \"severity\": \"low\", \"type\": \"string\", \"period\": \"string\", \"value\": \"string\", \"reference\": \"string\", \"source\": 2147483647, \"third_party_id\": \"string\", \"device\": \"string\", \"extra_content\": {}, \"occurred_at\": \"2023-01-12T16:29:39.055Z\", \"equipment\": 7}}, {\"model\": \"alarms.alarmlog\", \"pk\": 27,...

ps. извините за мой английский

вы могли бы вернуть данные в следующем виде

import json


return Response(json.dumps(response_serialized), status=status.HTTP_200_OK)
Вернуться на верх