Django, распространяйте исключения на DjangoRestFramework
Я использую Django и DjangoRestFramework для своего проекта и столкнулся с некоторой "проблемой". В то время как исключения DRF правильно возвращаются через ответ HTTP-запроса, исключения Django - нет
Например, если я вызываю IntegrityError из части Django, например, с ошибкой дублирования ключа (допустим, я создаю 2 записи с одинаковым уникальным первичным ключом), я получаю только "500 Server Error" в ответ на мой HTTP запрос.
Как мы можем распространять исключения из Django в DRF по умолчанию? С соответствующим кодом статуса HTTP ?
Единственный способ, который я нашел - это написать пользовательский обработчик исключений для DRF, который проверяет тип исключения следующим образом :
if isinstance(my_exception, IntegrityError):
# Do some custom thing on the Response object before returning it