Поднять исключение в 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
).