Как правильно получить тело POST-запроса в Django Rest Framework

Все, что я хочу, это получить тело запроса, но я не понимаю, как это сделать, я пробовал request.data, но он возвращает строку, после я попробовал использовать json.loads(request.data), но он просто отказался работать. Я просто хочу разобрать вложенный json, почему это так сложно в Django.

Мой код

class TestCheckView(views.APIView):
    
    def post(self, request, pk):
        result = Result()
        test_id = request.data.get("id")
        data = dict(request.data)
        
        for question in data["questions"]:
            print(type(question))
            for answer in question["answers"]:
                result.total += 1
                if Answer.objects.get(id=answer["id"],question_id=question["id"]):
                    result.score += 1
        result.test = Test.objects.get(id=test_id)
        result.save()
                    

что я хочу получить

"id":1,
"title":"Тест по теме тестов",
"questions":[
   {
      "id":1,
      "title":"Вопрос 1",
      "answers":[
         {
            "id":1,
            "title":"Ответ 1",
            "is_right":true
         },
         {
            "id":2,
            "title":"Ответ 2"
         }
      ]
   },
   {
      "id":2,
      "title":"Вопрос 2",
      "answers":[
         {
            "id":3,
            "title":"Ответ 1",
            "is_right":true
         }
      ]
   }
]
}
Вернуться на верх