Strange TyperError put() missing 1 required positional argument: 'path'

Я пытался протестировать свой метод PUT в следующем APITestcase:

    def test_story_delete(self):
    c = APIRequestFactory
    user = User.objects.get(username='test1')
    payload = {'storyName': 'changetest'}
    request = c.put(reverse('storyFunctions',args=[self.room.pk,self.story.pk]), format='json')
    force_authenticate(request,user=user)

Мой URL:

    path('room/<int:pk>/story/<int:idStory>/adm', APIHstory.as_view(),name='storyFunctions'),

И я продолжаю получать эту ошибку:

TypeError: put() missing 1 required positional argument: 'path'

Я не понимаю, что происходит, потому что я объявил путь внутри запроса. Кто-нибудь может мне помочь?

Редактирование: совместное использование представления, которое я тестирую

class APIstory(APIView):
permission_classes = [IsAuthenticated]

def put(self,request, pk, idStory):
    data = self.request.data
    pk = self.kwargs['pk']
    
    id = self.kwargs['idStory']
    name = data['storyName'].strip()
    if name == "" or str.isspace(name) or len(name) < 4:
            return Response({"error": "minimum of 4 words"}, status=400)
    

    if PokerRoom.objects.filter(id=pk).exists():
        session = PokerRoom.objects.filter(id=pk)

        if session[0].status == 'Finished':
            return Response({'error': 'Session already ended'}, status=400)
        else:
            session = PokerRoom(id=pk)
            if Story.objects.filter(id=id, idRoom=session).exists():
                if not Story.objects.filter(idRoom=session, storyName=name).exists():
                    for hist in Story.objects.filter(id=id, idRoom=session):
                        if  hist.status == 'Pending':
                            if hist.storyName == name:
                                return Response({'error':'story with the same name'}, status=400)
                            hist.storyName = name
                            hist.save()
                            status = hist.status
                            body = {"id":id,"storyName":name,"status":status}
                            message_socket("STORY_UPDATE", pk, body)
                            return Response({'success': 'story {} edited, status is {}.'.format(hist.id,hist.status)})
                        else:
                            return Response({'error': 'story already ended'}, status= 400)
                else:
                    return Response({'error': 'story with the same name'}, status= 400)

           
        return Response({'error': 'session doesnt exists.'}, status=400)
    else:
        return Response({'error': 'session doesnt exists.'}, status=400)

Разве вы не должны добавить тело запроса также в запрос put? Что-то вроде этого?

request = c.put(reverse('storyFunctions', kwargs={'pk': self.room.pk, 'idStory': self.story.pk}), payload, format='json')

В соответствии с docs

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