TypeError: object() takes no parameters

Django==2.0.1
python==3.5.2

import sys

from django.views.debug import technical_500_response


class ExceptionMiddleware(object): # 此处继承object
    def process_exception(self, request, exception):
        if request.user.is_superuser:
            return technical_500_response(request, *sys.exc_info())

开启uwsgi是出现上述错误,查阅发现在django==1.11.0中不能获取request.user的返回值,因为不返回,所以继承MiddlewareMixin可以解决此问题.

修改代码如下:

import sys

from django.utils.deprecation import MiddlewareMixin
from django.views.debug import technical_500_response


class ExceptionMiddleware(MiddlewareMixin): # 此处继承MiddlewareMixin
    def process_exception(self, request, exception):
        if request.user.is_superuser:
            return technical_500_response(request, *sys.exc_info())
发布了42 篇原创文章 · 获赞 28 · 访问量 5万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章