- Crear app/general con estructura estándar del proyecto: · utilidades/acciones.py → LogService.gestionar_log() (única fuente de logs) · utilidades/utils.py → get_client_ip() · utilidades/custom_errors.py → ValidationError, ExternalServiceError, NotFoundError · exception.py, request.py, serializers.py, validaciones/ - Registrar 'general' en INSTALLED_APPS y añadir general/ a urls.py - Refactorizar promociones/views.py para usar LogService en lugar de Log directo Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
22 lines
571 B
Python
22 lines
571 B
Python
from rest_framework.views import exception_handler
|
|
from rest_framework.response import Response
|
|
|
|
|
|
def custom_exception_handler(exc, context):
|
|
"""
|
|
Handler global de excepciones para DRF.
|
|
Añadir en settings.py:
|
|
REST_FRAMEWORK = {
|
|
'EXCEPTION_HANDLER': 'general.exception.custom_exception_handler',
|
|
}
|
|
"""
|
|
response = exception_handler(exc, context)
|
|
|
|
if response is not None:
|
|
response.data = {
|
|
'body': {'data': [], 'error': response.data},
|
|
'mensaje': str(exc),
|
|
}
|
|
|
|
return response
|