Django rest framework AttributeError: объект 'function' не имеет атрибута 'get_extra_actions' при доступе из react

Кажется, я получаю следующую ошибку, но, похоже, только при доступе из React.

2024-04-19 18:30:28   File "/app/config/urls.py", line 29, in <module>
2024-04-19 18:30:28     path('api/', include(router.urls)),
2024-04-19 18:30:28                            ^^^^^^^^^^^
2024-04-19 18:30:28   File "/usr/local/lib/python3.12/site-packages/rest_framework/routers.py", line 77, in urls
2024-04-19 18:30:28     self._urls = self.get_urls()
2024-04-19 18:30:28                  ^^^^^^^^^^^^^^^
2024-04-19 18:30:28   File "/usr/local/lib/python3.12/site-packages/rest_framework/routers.py", line 338, in get_urls
2024-04-19 18:30:28     urls = super().get_urls()
2024-04-19 18:30:28            ^^^^^^^^^^^^^^^^^^
2024-04-19 18:30:28   File "/usr/local/lib/python3.12/site-packages/rest_framework/routers.py", line 236, in get_urls
2024-04-19 18:30:28     routes = self.get_routes(viewset)
2024-04-19 18:30:28              ^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-19 18:30:28   File "/usr/local/lib/python3.12/site-packages/rest_framework/routers.py", line 152, in get_routes
2024-04-19 18:30:28     extra_actions = viewset.get_extra_actions()
2024-04-19 18:30:28                     ^^^^^^^^^^^^^^^^^^^^^^^^^
2024-04-19 18:30:28 AttributeError: 'function' object has no attribute 'get_extra_actions'

urls.py:

router.register(r'hello', views.HelloViewSet, 'hello')

views.py:

@api_view(['GET'])
@permission_classes([AllowAny])
class HelloViewSet(viewsets.ModelViewSet):

    #dummy serializers and queryset for now
    serializer_class = SomeDummyDetailSerializer
    queryset = SomeDummyObject.objects.all()

    permission_classes = [DjangoObjectPermissions]
    def list(self, request): #get list
        return Response({'message': 'Hello, worlds!'})
    
    def retrieve(self, request, pk=None): #get detail
        return Response({'message': 'Hello, worlds!'})

Я что-то упускаю? Большинство ошибок, которые я вижу, связаны с использованием представлений вместо ViewSets с маршрутизатором. Мне также кажется, что нужно установить @api_view, чтобы отменить ошибку 401 denied, но я предполагаю, что это отдельная проблема с аутентификацией токена или чем-то еще.

Решено - пришлось удалить @api_view и сделать это внутри класса

permission_classes = [AllowAny]
http_method_names = ['get'] 
Вернуться на верх