Je suis en train d'utiliser Django 1.10 et j'essaie d'attraper toutes les exceptions avec un middleware d'exception.
Le code ci-dessous provoque une erreur interne du serveur:
mw_instance = middleware(handler)
TypeError: object() takes no parameters
views.py
from django.http import HttpResponse
def my_view(request):
x = 1/0 # provoque une exception
return HttpResponse("ok")
settings.py
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'myproject.middleware.ExceptionMiddleware',
]
middleware.py
from django.http import HttpResponse
class ExceptionMiddleware(object):
def process_exception(self, request, exception):
return HttpResponse("in exception")
J'ai vu ces object() takes no parameters in django 1.10 et d'autres questions parlant du middleware versus middleware_classes, mais je ne suis pas sûr de savoir comment cela s'applique à ce cas, ou ce que je devrais réellement modifier pour résoudre le problème.