我似乎收到以下错误,但似乎只有当我从 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!'})
我在这里遗漏了什么吗? 我看到的大多数错误似乎都是使用视图而不是带有路由器的视图集。我似乎还需要设置 @api_view 来覆盖 401 拒绝错误,但我认为这是令牌身份验证或其他问题的单独问题。
解决了它 - 必须删除@api_view并在类中进行
permission_classes = [AllowAny]
http_method_names = ['get']