我正在尝试使用
django的客户端类测试我的应用程序时访问request.user对象.
from django.test import TestCase
from django.test.client import Client
class SomeTestCase(TestCase):
def setUp(self):
self.client = Client()
self.client.login( username="foo", password="bar")
def test_one(self):
response = self.client.get("/my_profile/")
self.fail( response.request.user )
这显然会失败,但它失败了因为response.request没有用户属性.
AttributeError: 'dict' object has no attribute 'user'
有没有办法从客户端实例访问用户对象?我想这样做是为了检查一些测试用户的数据是否正确呈现.我可以尝试通过在setUp期间设置所有必要的信息来解决这个问题,但在我这样做之前,我想检查一下我是否只是错过了一些东西.
最佳答案 使用response.context [‘user’].
如果使用RequestContext,则用户在模板上下文中自动可用.见auth data in templates doc.
否则我相信你应该只查询它:
def test_one(self):
response = self.client.get("/my_profile/")
user = User.objects.get(username="foo")
self.fail( user.some_field == False )