6 votes

Gestion globale des exceptions dans Django-rest-framework

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'}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X