django – HttpRequest对象没有属性’session’
发布时间:2020-12-20 12:30:20 所属栏目:Python 来源:网络整理
导读:我似乎无法让会议工作. Django抱怨HttpRequest对象没有名为’session’的属性.在文档中,它清楚地表明,如果您启用了中间件,并且已安装的应用程序中包含 django.contrib.sessions,那么您就可以开始了.我使用单元测试得到这个错误. 在我的views.py中: def home
我似乎无法让会议工作. Django抱怨HttpRequest对象没有名为’session’的属性.在文档中,它清楚地表明,如果您启用了中间件,并且已安装的应用程序中包含
django.contrib.sessions,那么您就可以开始了.我使用单元测试得到这个错误.
在我的views.py中: def home_page(request): response = render(request,'home.html',{'message_text' : request.session.get('message_text',''),'ip_address' : request.session.get('ip_address','port_number' : request.session.get('port_number','command_text' : request.session.get('command_text',}) request.session['message_text'] = '' return response 我试图获得的会话值是我试图在views.py中的其他地方的表单post方法中设置的. 它还声明在新项目上默认启用这些.所以我创建了一个全新的django项目并在控制台中检查了session属性.这正是我所做的: (django1.5)Python $django-admin.py startproject testing (django1.5)Python $cd testing/ (django1.5)testing $python manage.py shell Python 2.7.3 (v2.7.3:70274d53c1dd,Apr 9 2012,20:52:43) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin Type "help","copyright","credits" or "license" for more information. (InteractiveConsole) >>> from django.http import HttpRequest >>> r = HttpRequest() >>> r.session Traceback (most recent call last): File "<console>",line 1,in <module> AttributeError: 'HttpRequest' object has no attribute 'session' >>> 我错过了什么? 更新:这仅在使用单元测试进行测试时才会发生.以下是导致异常的测试: def test_home_page_returns_correct_html(self): request = HttpRequest() response = home_page(request) expected_html = render_to_string('home.html') self.assertEqual(response.content,expected_html) 解决方法
将以下内容添加到测试文件的顶部:
from django.conf import settings from django.utils.importlib import import_module 那应该工作: def test_home_page_returns_correct_html(self): request = HttpRequest() engine = import_module(settings.SESSION_ENGINE) session_key = None request.session = engine.SessionStore(session_key) response = home_page(request) expected_html = render_to_string('home.html') self.assertEqual(response.content,expected_html) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |