我正在使用Django 1.10並嘗試捕獲異常中間件的所有異常。Django異常中間件:TypeError:object()不帶參數
下面的代碼使得一個內部服務器錯誤:
mw_instance = middleware(handler)
TypeError: object() takes no parameters
views.py
from django.http import HttpResponse
def my_view(request):
x = 1/0 # cause an 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")
我已經看到這些object() takes no parameters in django 1.10和其他有關中間件和中間件類的問題,但我不確定這是如何適用於這種情況,或者我真的需要更改以解決問題。
謝謝!這兩種方式都有效。 – user984003
使用'MiddlewareMixin'解決了我的問題。 – sgiri
Django1.11中的middlewareMixin將無法確定'request.user'。它返回匿名 – Sarit