@extend_schema(request=ExamAddRequest(), summary="Pass Exam from Recruit")
                  
                  
                      @action(methods=['post'], detail=True, url_path='exam', url_name='exam-pass')
                  
                  
                      def pass_exam(self, request: Request, pk: int):
                  
                  
                          exam = ExamAddRequest(data=request.data).get_from_request()
                  
                  
                          print(exam)
                  
                  
                          return Response({'hello': 'world'})url получается таким /api/v1/recruits/{id}/exam 
                  
                  
                  при попытке сделать запрос пишет что такой метод не разрешен
                  
                  
                  c чем может быть связано такое поведение? 
                  
                  
                  (в классе также присутствует реализованный create на /api/v1/recruits, но не думаю что это должно как-то мешать)
                  
                  
                
Немного посмотрев внутри DRF обработку viewsets обнаружил, что он почему-то ссылается на другую функцию, в которой только обработка get метода из-за чего кидает исключение про post метод (хотя в апи генераторе нормальные, отдельные ссылки) (немного больше кода с полным view и urls https://dpaste.org/c86P) может кто уже сталкивался с таким? может я неправильно использую @action, DRF Routers и/или GenericViewSet?
Ну вообще я бы миксины добавил, а не экшены
Обсуждают сегодня