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我在上面的问题中添加了您的权限类在您将其用作装饰器之前,是否确定您没有重新定义此文件中的任何位置?也许可以尝试打印(权限类),然后在控制台上检查它是否真的是预期的功能。。。