如何将所有 django 错误作为 json 数据发送

问题描述 投票:0回答:2

我正在 django 中构建一个 Rest api,我正在使用 postman 来测试我的 api, 一切都很好,但我希望如果我的 django 应用程序中发生任何错误,那么 django 会向我发送 json 错误而不是 html 页面。 有没有办法做到这一点。

django django-rest-framework django-apps django-errors
2个回答
1
投票

您想要的是实现自己的异常处理程序:https://www.django-rest-framework.org/api-guide/exceptions/

这适用于任何类型的异常,并且采用您想要的格式。

请注意,一些异常已经得到了很好的处理,例如使用序列化器和通用 API,其中响应以 json 形式发送。一个示例可能会缺少序列化器上的必填字段或验证错误、错误的权限等。

您也可以更换 400 和 500 个处理程序来满足您的目的。


0
投票
class HttpResponseInternalServerError(JsonResponse):
  def __init__(self, message):
    super().__init__({'message' : message}, status=503)


try:
  raise TypeError
except TypeError:
  return HttpResponseInternalServerError()
© www.soinside.com 2019 - 2024. All rights reserved.