Поднять исключение в django oauth toolkit

Я использую Django 2.x и django-oauth-toolkit для генерации токена доступа.

Я написал собственный вид токена, чтобы выполнить несколько проверок учетной записи, а затем сгенерировать токен доступа для пользователя. Если пользовательская проверка не удалась, я хочу вызвать исключение с кодом состояния 400.

class CustomTokenView(TokenView):
    def create_token_response(self, request):
        login = request.POST.pop('username', None)

        username = get_user_model().objects.filter(
            email=login[0]
        ).last()

        if not username.verified:
            raise HttpResponse(content='User not verified', status=status.HTTP_400_BAD_REQUEST)

        request.POST._mutable = mutable

        return super(TokenView, self).create_token_response(request)

Но это дает ошибку как

TypeError: exceptions must derive from BaseException

Я тоже пробовал с

from rest_framework.response import Response  
return Response('User not verified', status=status.HTTP_400_BAD_REQUEST)

Но никто не работает.

1 ответ

Ты не можешь raise ответ. Ответ не является исключением. Вместо этого вы можете либо вернуть его, либо вызвать фактическое исключение из django-rest-framework (для всех доступных описаний, описанных здесь, выберите то, которое лучше всего подходит для вашего случая. На мой взгляд, оно должно быть вашим, созданным из APIException).

Другие вопросы по тегам