Python 无法调用访问路由的Django permission_类

Python 无法调用访问路由的Django permission_类,python,django,django-rest-framework,Python,Django,Django Rest Framework,我正在尝试更改特定路由的权限。有些路由我希望是开放的,其他路由我希望对用户进行身份验证。我的代码如下: from rest_framework.decorators import api_view, permission_classes from rest_framework.permissions import IsAuthenticated from rest_framework.viewsets import GenericViewSet class UserViewSet(Generi

我正在尝试更改特定路由的权限。有些路由我希望是开放的,其他路由我希望对用户进行身份验证。我的代码如下:

from rest_framework.decorators import api_view, permission_classes
from rest_framework.permissions import IsAuthenticated
from rest_framework.viewsets import GenericViewSet

class UserViewSet(GenericViewSet):
      queryset = User.objects.all()
      serializer_class = UserSerializer
      permission_classes = [IsAuthenticated]
      renderer_classes = [JSONRenderer]


    @action(url_path="an/api/path", detail=False, methods=["post"], renderer_classes=[JSONRenderer])
    @api_view(['GET'])
    @permission_classes((IsAuthenticated, ))
    def get_stuff(self, request):
        #Will get stuff
但我一直在犯这样的错误:

 File "/code/api/views/UserViewSet.py", line 16, in <module>
api_1     |     class UserViewSet(GenericViewSet):
api_1     |   File "/code/api/views/UserViewSet.py", line 33, in UserViewSet
api_1     |     @permission_classes((IsAuthenticated, ))
api_1     | TypeError: 'list' object is not callable

你知道为什么它一直抛出list'object is not callable函数吗?

删除
权限\u类=[IsAuthenticated]
。它覆盖了装饰器

class UserViewSet(GenericViewSet):
      queryset = User.objects.all()
      serializer_class = UserSerializer
      renderer_classes = [JSONRenderer]


    @action(url_path="an/api/path", detail=False, methods=["post"], renderer_classes=[JSONRenderer])
    @api_view(['GET'])
    @permission_classes((IsAuthenticated, ))
    def get_stuff(self, request):
        #Will get stuff

删除
权限\u类=[IsAuthenticated]
。它覆盖了装饰器

class UserViewSet(GenericViewSet):
      queryset = User.objects.all()
      serializer_class = UserSerializer
      renderer_classes = [JSONRenderer]


    @action(url_path="an/api/path", detail=False, methods=["post"], renderer_classes=[JSONRenderer])
    @api_view(['GET'])
    @permission_classes((IsAuthenticated, ))
    def get_stuff(self, request):
        #Will get stuff

如果需要,请尝试
@permission\u类(已验证)
works@AmitNanaware无@permission\u类(已验证)扔同样的东西error@DevinDixon您的默认权限类在settings.py中是什么样子的?@chamoda我在上面的问题中添加了您的权限类在您将其用作装饰器之前,是否确定您没有重新定义此文件中的任何位置?可能在之前尝试打印(权限\u类)并在控制台上检查它是否真的是预期的功能…尝试
@permission\u类(IsAuthenticated)
如果works@AmitNanaware无@permission\u类(已验证)扔同样的东西error@DevinDixon您的默认权限类在settings.py中是什么样子的?@chamoda我在上面的问题中添加了您的权限类在您将其用作装饰器之前,是否确定您没有重新定义此文件中的任何位置?也许可以尝试打印(权限类),然后在控制台上检查它是否真的是预期的功能。。。