2015-06-22 4 views
3

Использование рамки django rest, я всегда делаю вызовы API через тесты. Но иногда они терпят неудачу, и я в настоящее время регистрирую HTML с помощью stacktrace в файл, а затем просматриваю его в браузере, но это очень раздражает.Просмотр ошибки stacktrace на 500 как json на django

Есть ли способ сделать вывод json или что-нибудь еще, кроме html?

ответ

2

DRF обрабатывает только следующее: (источник: DRF docs)

  • подклассов ApiException поднятых в рамках REST.
  • исключение Http404 Django.
  • Разрешение DjangoDenied исключение.

Если вы знаете, какое представление это происходит, одним из способов сделать его визуализацией ответов API будет попытка/исключение и повышение его как исключение API вместо того, что вы на самом деле получаете.

В качестве альтернативы вы можете также предоставить собственный Exception Handler (см https://github.com/tomchristie/django-rest-framework/blob/master/rest_framework/views.py#L52 для оригинала), который обрабатывает более типов исключений по умолчанию 3, с помощью установки для REST_FRAMEWORK

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