我正在使用 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)
但是没有一个工作。
答案 0 :(得分:0)
您不能CREATE TABLE a
(a_id integer,
PRIMARY KEY (a_id));
CREATE TABLE t1
(t1_id integer,
a_id integer,
PRIMARY KEY (t1_id),
FOREIGN KEY (a_id)
REFERENCES a
(a_id),
UNIQUE (t1_id,
a_id));
CREATE TABLE t2
(t2_id integer,
a_id integer,
PRIMARY KEY (t2_id),
FOREIGN KEY (a_id)
REFERENCES a
(a_id),
UNIQUE (t2_id,
a_id));
CREATE TABLE t1_t2
(t1_id integer,
t2_id integer,
a_id integer,
PRIMARY KEY (t1_id,
t2_id,
a_id),
FOREIGN KEY (t1_id,
a_id)
REFERENCES t1
(t1_id,
a_id),
FOREIGN KEY (t2_id,
a_id)
REFERENCES t2
(t2_id,
a_id));
进行回复。响应也不例外。相反,您可以返回它,也可以从django-rest-framework引发实际的异常(here中描述了所有可用的异常,请选择最适合您的情况。我认为,这应该是您自定义的{{{ 1}})。