I found only very stale articles on the Internet that don't quite solve my problem.
I tried this way, but Django still returns html pages:
exceptions.py
def custom_exception_handler(exc, context):
response = exception_handler(exc, context)
if response is not None:
if response.status_code == 500:
response.data = {"code": 500, "message": "Internal server error"}
if response.status_code == 404:
response.data = {"code": 404, "message": "The requested resource was not found on this server"}
return response
settings.py
REST_FRAMEWORK = {
'EXCEPTION_HANDLER': 'backend.exceptions.custom_exception_handler',
}