在django上查看500上的错误堆栈跟踪为json

时间:2015-06-22 02:29:58

标签: django django-rest-framework django-errors

使用django rest框架,我总是通过测试进行API调用。但有时它们会失败,我目前正在使用堆栈跟踪将HTML记录到文件中,然后使用浏览器进行查看,但这非常烦人。

除了html之外,有没有办法让它输出json或其他任何东西?

1 个答案:

答案 0 :(得分:2)

DRF仅处理以下内容:(来源:DRF docs

  • 在REST框架内引发的APIException子类。
  • Django的Http404异常。
  • Django的PermissionDenied异常。

如果您知道这种情况发生了哪种情况,那么使其呈现API响应的一种方法是尝试/将其提升为APIException而不是实际获得的任何内容。

或者,您也可以通过使用REST_FRAMEWORK的EXCEPTION_HANDLER设置来提供自己的异常处理程序(请参阅原始文件的https://github.com/tomchristie/django-rest-framework/blob/master/rest_framework/views.py#L52),该处理程序处理超过默认的3种异常类型

REST_FRAMEWORK = {
    'EXCEPTION_HANDLER': 'my_project.my_app.utils.custom_exception_handler'
}