Existe-t-il un moyen de gérer toutes les exceptions de manière globale sans utiliser le bloc try-except dans le cadre de repos de Django ?
Je veux convertir la page d'erreur html que Django envoie en une réponse personnalisée sous forme d'objet json.
J'ai créé un fichier exception.py dans mon application.
def custom_exception_handler(exc, context=None):
response = exception_handler(exc)
if isinstance(exc, HttpResponseServerError):
custom_response_data = {
'detail': 'Internal Server Error' # custom exception message
}
response.data = custom_response_data
return response
J'ai configuré ceci dans settings.py.
REST_FRAMEWORK = {
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE': 10,
'EXCEPTION_HANDLER':'my_project.my_app.exceptions.custom_exception_handler'}