Django 将python2项目移植到python3时,在mobileesp的中间件中获取错误
在将带有Django 1.1.11的python2项目移植到Python3.7和Django 2.2.5时,我在依赖项中遇到了错误 我在python2中使用Django-mobileesp,当我将代码更新到python3时,它会给出UserAgent中间件的错误 线程django主线程中出现异常: 回溯(最近一次呼叫最后一次): 文件“/usr/lib/python3.7/threading.py”,第917行,在内部引导中 self.run() 文件“/usr/lib/python3.7/threading.py”,第865行,正在运行 自我目标(*自我参数,**自我参数) 文件“/home/jarvis/Desktop/law3/lib/python3.7/site packages/django/utils/autoreload.py”,第54行,在包装器中 fn(*args,**kwargs) 文件“/home/jarvis/Desktop/law3/lib/python3.7/site packages/django/core/management/commands/runserver.py”,第137行,在内部运行 handler=self.get\u处理程序(*args,**选项) 文件“/home/jarvis/Desktop/law3/lib/python3.7/site packages/django/contrib/staticfiles/management/commands/runserver.py”,第27行,在get_handler中 handler=super() 文件“/home/jarvis/Desktop/law3/lib/python3.7/site packages/django/core/management/commands/runserver.py”,第64行,在get_handler中 返回get_internal_wsgi_application() 文件“/home/jarvis/Desktop/law3/lib/python3.7/site packages/django/core/servers/basehttp.py”,第45行,在get_internal_wsgi_应用程序中 返回导入字符串(应用程序路径) 文件“/home/jarvis/Desktop/law3/lib/python3.7/site packages/django/utils/module_loading.py”,第17行,导入字符串 模块=导入模块(模块路径) 导入模块中的文件“/home/jarvis/Desktop/law3/lib/python3.7/importlib/init.py”,第127行 return _bootstrap._gcd_import(名称[级别:],包,级别) 文件“”,第1006行,在\u gcd\u导入中 文件“”,第983行,在_find_和_load中 文件“”,第967行,在“查找”和“加载”中解锁 文件“”,第677行,在\u加载\u解锁 exec_模块中第728行的文件“” 文件“”,第219行,在“调用”中,删除了“帧” 文件“/home/jarvis/Desktop/law3/src/laversify/wsgi.py”,第5行,在 application=get\u wsgi\u application() 文件“/home/jarvis/Desktop/law3/lib/python3.7/site packages/django/core/wsgi.py”,第13行,在get_wsgi_应用程序中 返回WSGIHandler() 文件“/home/jarvis/Desktop/law3/lib/python3.7/site packages/django/core/handlers/wsgi.py”,第135行,在init self.load_中间件() 文件“/home/jarvis/Desktop/law3/lib/python3.7/site packages/django/core/handlers/base.py”,第37行,在load_中间件中 mw_实例=中间件(处理程序) TypeError:UserAgentDetectionMiddleware()不接受任何参数 设置.pyDjango 将python2项目移植到python3时,在mobileesp的中间件中获取错误,django,python-3.x,Django,Python 3.x,在将带有Django 1.1.11的python2项目移植到Python3.7和Django 2.2.5时,我在依赖项中遇到了错误 我在python2中使用Django-mobileesp,当我将代码更新到python3时,它会给出UserAgent中间件的错误 线程django主线程中出现异常: 回溯(最近一次呼叫最后一次): 文件“/usr/lib/python3.7/threading.py”,第917行,在内部引导中 self.run() 文件“/usr/lib/python3.7/th
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',
'corsheaders.middleware.CorsMiddleware',
'django_mobileesp.middleware.UserAgentDetectionMiddleware'
]
#middleware.py#
from django.conf import settings
from django.utils.functional import SimpleLazyObject
DETECT_USER_AGENTS = getattr(settings, 'DETECT_USER_AGENTS', {})
def lazy_detection(request, key):
detector = DETECT_USER_AGENTS[key]
return SimpleLazyObject( lambda: detector(request) )
class UserAgentDetectionMiddleware(object):
"""
Middleware to detect request's user agent
"""
def process_request(self, request):
for each in DETECT_USER_AGENTS:
setattr( request, each, lazy_detection(request, each) )
这不是Python版本的问题,而是Django版本的问题。Django 2.0中删除了旧的(Django 1.10之前的)中间件方式以及中间件_类设置。请参阅如何使您的中间件与新的中间件结构兼容。先生,我已相应地更改了中间件,但问题仍然存在。