django 您没有执行此操作的权限,即使我没有在视图上放置任何权限类

zysjyyx4  于 2022-12-01  发布在  Go
关注(0)|答案(1)|浏览(156)

drfsetting.py的www.example.com身份验证设置

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework_simplejwt.authentication.JWTAuthentication',
    )
}

我的观点有问题

@api_view(['POST'])
@permission_classes([IsAuthenticated])
def createAddress(request):
    data = request.data
    try:
        address = AddressSerializer(data=data)
        if address.is_valid():
            address.save()
            return Response(address.data)
        else:
            return Response(address.errors, status=status.HTTP_400_BAD_REQUEST)
    except Exception:
        message = {'detail': 'Address is not valid'}
        return Response(message, status=status.HTTP_400_BAD_REQUEST)
    
@api_view(['GET'])
@permission_classes([IsAuthenticated])
def getAddress(request):
    print(request)
    address = Address.objects.all()
    serializer = AddressSerializer(address, many=True)
    return Response(serializer.data)

当我点击createAddress时,标头中的授权和令牌以及中的工作正常,但当我点击getAddress时,我得到错误

即使我对getAddress上的权限类进行注解,我仍然会遇到问题

hmae6n7t

hmae6n7t1#

这可能对你有帮助

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework_simplejwt.authentication.JWTAuthentication',
    ),
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticated',
    )
}

@api_view(['GET'])
@permission_classes([AllowAny])
def getAddress(request):
    print(request)
    address = Address.objects.all()
    serializer = AddressSerializer(address, many=True)
    return Response(serializer.data)

相关问题