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
Вернуться на верх