我正在将一个django应用程序从1.x移植到2.1,并且遇到了错误,即“TypeError:object()不带参数”.我试图解决这个问题很长一段时间,但即使经过数天的调试和在线搜索,也没有得到任何线索
已安装的应用:
INSTALLED_APPS = [
'django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','django.contrib.sites','allauth','allauth.account','allauth.socialaccount','allauth.socialaccount.providers.github','timezone_field','axes','humans','Boxes','pages',]
中间件设置:
MIDDLEWARE = [
'whitenoise.middleware.WhiteNoiseMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.locale.LocaleMiddleware','django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware','django.middleware.security.SecurityMiddleware',]
压痕没有问题,
celery version : 4.2.1
raven version : 6.9.0
django version : 2.1
这是我的wsgi.py
import os
from raven.contrib.django.raven_compat.middleware.wsgi import Sentry
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE","settings")
application=Sentry(get_wsgi_application())
以下是错误日志的摘录
File "/usr/lib/python3.5/importlib/__init__.py",line 126,in import_module
return _bootstrap._gcd_import(name[level:],package,level)
File "
使用CustomSentry后出错:
in
我试图使用ExceptionMiddleware捕获异常,现在我收到以下错误:
application = CustomSentry(get_wsgi_application())
File "/usr/local/lib/python3.5/dist-packages/django/utils/deprecation.py",line 85,in __init__
super().__init__()
TypeError: __init__() missing 1 required positional argument: 'application'
任何帮助,将不胜感激.
最佳答案
该错误表明您的中间件列表中有旧式中间件.旧式中间件在实例化时没有收到论据,而新式中间件则收到处理程序.
原文链接:https://www.f2er.com/python/438551.html现在,根据您的设置,唯一的非Django中间件是whitenoise,但是您说即使在评论之后该错误仍然存在.
这里有一些建议可以帮助你弄清楚发生了什么:
>正如我所评论的,向Django源添加断点或print语句以找出导致问题的中间件.
>确保您正在编辑的设置文件是实际使用的设置文件.
>使用Python shell检查MIDDLEWARE设置的实际值:
$python manage.py shell
>>> from django.conf import settings
>>> settings.MIDDLEWARE
...