在 django oauth 工具包中引发异常

raise exception in django oauth toolkit

我正在使用 Django 2.xdjango-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)

但是 none 正在工作。

您无法raise回复。响应也不例外。相反,您可以 return 它或从 django-rest-framework 引发实际异常(所有可用异常描述 here,select 最适合您的情况。在我看来它应该是你的自定义,创建自 APIException).