Django возвращает 500 вместо 401 / 403, когда токен не передан

У меня есть представление Django, которое требует аутентификации пользователя (приложение использует jwt), Когда запрос передается без заголовка Authorization, ответ 500, я хочу, чтобы он был 401 / 403, потому что он не должен возвращать внутреннюю ошибку сервера, а неавторизованную ошибку.

Я много искал и не смог найти способ настроить это поведение

Вот код:

views.py:

class GetProfileAPIView(APIView):
permissions_classes = [permissions.IsAuthenticated]

def get(self, request):
    user = self.request.user
    user_profile = Profile.objects.get(user=user)
    serializer = ProfileSerializer(user_profile, context={"request": request})
    return Response(serializer.data, status=status.HTTP_200_OK)

настройки:

DJOSER = {
    "LOGIN_FIELD": "email",
    "USER_CREATE_PASSWORD_RETYPE": True,
    "USERNAME_CHANGED_EMAIL_CONFIRMATION": True,
    "PASSWORD_CHANGED_EMAIL_CONFIRMATION": True,
    "SEND_CONFIRMATION_EMAIL": True,
    "PASSWORD_RESET_CONFIRM_URL": "password/reset/confirm/{uid}/{token}",
    "SET_PASSWORD_RETYPE": True,
    "PASSWORD_RESET_CONFIRM_RETYPE": True,
    "USERNAME_RESET_CONFIRM_URL": "email/reset/confirm/{uid}/{token}",
    "ACTIVATION_URL": "activate/{uid}/{token}",
    "SEND_ACTIVATION_EMAIL": True,
    "SERIALIZERS": {
        "user_create": "apps.users.serializers.CreateUserSerializer,",
        "user": "apps.users.serializers.UserSerializer",
        "current_user": "apps.users.serializers.UserSerializer",
        "user_delete": "djoser.serializers.UserDeleteSerializer",
    },
}
REST_FRAMEWORK = {
    "DEFAULT_AUTHENTICATION_CLASSES": (
        "rest_framework_simplejwt.authentication.JWTAuthentication",
    )
}
SIMPLE_JWT = {
    "AUTH_HEADER_TYPES": (
        "Bearer",
        "JWT",
    ),
    "ACCESS_TOKEN_LIFETIME": timedelta(minutes=120),
    "REFRESH_TOKEN_LIFETIME": timedelta(days=1),
    "SIGNING_KEY": "supersecretkey~!",
    "AUTH_HEADER_NAME": "HTTP_AUTHORIZATION",
    "AUTH_TOKEN_CLASSES": ("rest_framework_simplejwt.tokens.AccessToken",),
}
enter code here

Я использую разрешения_классов следующим образом:

class HLogViewSet(viewsets.ModelViewSet):
    permission_classes = [IsAuthenticated, partial(IsAllowed, 'WCloud_HLog')]
Вернуться на верх