【发布时间】:2020-04-01 14:54:46
【问题描述】:
我正在继承 Django 的其余框架 APIException 类来创建自定义 API 异常。例如,我的一个例外如下所示:
class Unauthorized(APIException):
status_code = 401
default_detail = 'You have to login first.'
default_code = 'ERR_UNAUTHORIZED'
我已经编写了一个自定义异常处理程序来修改键名。 这是我的异常处理程序中处理这些异常的部分:
def custom_exception_handler(exc, context):
response.data['code'] = response.data['detail'].code
response.data['message'] = response.data['detail']
print(response.data)
del response.data['detail']
return response
因此,我的异常的输出如下所示:
{
"code": "ERR_UNAUTHORIZED",
"message": "You have to login first."
}
我需要做的是我想在我的异常中添加一个新字段,以便我的异常输出如下例所示:
{
"code": "ERR_UNAUTHORIZED",
"message": "You have to login first.",
"extra" : "{ "description" : "extra info" }"
}
在我看来,我想像这样抛出这个异常:
raise Unauthorized(extra={ "description" : "extra info" })
我对 Django rest_framework 很陌生,我已经搜索过这个,还尝试将 "another field" 添加到我的自定义异常类字段中,但这无法解决我的问题。有没有办法做这样的事情?
【问题讨论】:
标签: python django exception django-rest-framework