我有时会在process_response方法中的自定义中间件中收到此错误.我有以下中间件列表:
MIDDLEWARE_CLASSES = [
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.doc.XViewMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'application.middleware.LastCampaignSessionMiddleware'
Run Code Online (Sandbox Code Playgroud)
]
所以会话中间件放在我的中间件之前.我del request.session在源代码中没有任何表达式.这是process_response方法:
def process_response(self, request, response):
if 'last_campaign_id' in request.session and request.session['last_campaign_id']:
if request.COOKIES['last_campaign_id'] != request.session['last_campaign_id']:
response.set_cookie('last_campaign_id', request.session['last_campaign_id'])
return response
Run Code Online (Sandbox Code Playgroud)
不知道为什么会发生这种情况.
编辑03-08-2012 12-30
它看起来像浏览器请求favicon:
[03/Aug/2012 10:26:42] "GET /favicon.ico/ HTTP/1.1" 404 6701
Run Code Online (Sandbox Code Playgroud)
django中没有默认行为来解析此URL吗?因为我没有明确指定应该处理此请求的视图.我不在页面源代码中使用favicon.所以我想这是浏览器请求/favicon.ico.我想如果404错误HttpRequest将无法正确构造,所以难怪我在请求对象中没有会话.但这只是我的假设.
此外,如果有必要我在使用django dev服务器时遇到此错误.
编辑13-00
我用favicon修复了这个问题,但仍然出错.为什么请求中可能不存在会话?
我将我的Django版本升级1.11.5到了2.0,我正在尝试解决不同的弃用元素.
但是,即使我的CSS/bootstrap样式表不起作用,我也无法登录到我的Django软件.我有这个问题:
'WSGIRequest' object has no attribute 'session'
Run Code Online (Sandbox Code Playgroud)
这是整个Traceback:
Environment:
Request Method: POST
Request URL: http://127.0.0.1:8000/Authentification/Login/
Django Version: 2.0
Python Version: 3.6.2
Installed Applications:
['Institution',
'django.conf.urls',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'bootstrapform',
'django_countries',
'chartit',
'Configurations',
'Home',
'Authentication',
'Identity',
'rest_framework',
'Fiscal',
'bootstrap4']
Installed Middleware:
[]
Traceback:
File "/Users/valentinjungbluth/Desktop/DatasystemsCORE3.6/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
35. response = get_response(request)
File "/Users/valentinjungbluth/Desktop/DatasystemsCORE3.6/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
128. response = self.process_exception_by_middleware(e, request)
File "/Users/valentinjungbluth/Desktop/DatasystemsCORE3.6/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
126. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/valentinjungbluth/Desktop/DatasystemsCORE3.6/lib/python3.6/site-packages/django/views/decorators/csrf.py" in …Run Code Online (Sandbox Code Playgroud) 我随机时间不断收到此错误,每当我触摸django.wsgi文件时,它只会在几个小时后再次发生.我迷失了该怎么做.我的middleware_classes如下:
MIDDLEWARE_CLASSES = (
'django.middleware.cache.UpdateCacheMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.csrf.CsrfResponseMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.facebookConnectMiddleware.FacebookConnectMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.cache.FetchFromCacheMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
)
Run Code Online (Sandbox Code Playgroud)
当我执行"if request.session"语句时,错误总是出现在facebook中间件中.谢谢