Error handling django rest框架自定义错误消息作为响应

Error handling django rest框架自定义错误消息作为响应,error-handling,django-rest-framework,Error Handling,Django Rest Framework,对于我的API,我需要用HTTP 200和JSON内容响应每个请求的错误。因此,与其用这个来回应: Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) 我想这样做: res = {"code": 400, "message": "Bad Requset"} Response(res) 放这种东西最好的地方是哪里?怎么放?在序列化程序,呈现程序,异常?我需要捕获序列化程序可能引发的每个异常以及我编写的自定义异常。您可以

对于我的API,我需要用HTTP 200和JSON内容响应每个请求的错误。因此,与其用这个来回应:

Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
我想这样做:

res = {"code": 400, "message": "Bad Requset"}
Response(res)

放这种东西最好的地方是哪里?怎么放?在
序列化程序
呈现程序
异常
?我需要捕获序列化程序可能引发的每个异常以及我编写的自定义异常。

您可以使用状态代码200
data=json.dumps(…)
,类似于以下内容:

res = {"code": 400, "message": "Bad Requset"}
return Response(data=json.dumps(res), status=status.HTTP_200_OK)
在处理异常的位置方面,RestFramework已经涵盖了它,您可以创建一个自定义处理程序并执行此操作

然而,由于api端点通常是基于视图的,我个人建议创建一个定制的装饰器来包装您的视图,并在出现错误时返回这样的响应。 或者,如果您真的想对所有错误返回相同的响应,那么遵循RestFramework文档并定制错误处理应该是最佳做法

希望这有帮助