Python 运行测试时,Django用户不在请求对象中

Python 运行测试时,Django用户不在请求对象中,python,django,unit-testing,request,Python,Django,Unit Testing,Request,我正在运行一个测试,让用户登录,发送一些POST数据,并分析响应。虽然我可以硬编码用户信息,但我不明白为什么我不能从请求对象访问用户对象。以下是我的测试结果: class CompleteGuidedSetupTestCase(TestCase): fixtures = ['test_data.json'] def setUp(self): self.client = Client() self.client.login(username='te

我正在运行一个测试,让用户登录,发送一些POST数据,并分析响应。虽然我可以硬编码用户信息,但我不明白为什么我不能从
请求
对象访问
用户
对象。以下是我的测试结果:

class CompleteGuidedSetupTestCase(TestCase):
    fixtures = ['test_data.json']

    def setUp(self):
        self.client = Client()
        self.client.login(username='test@test.test', password='testtest')

    def test_complete_guided_setup_defaults(self):
        response = self.client.post('/url', {
            'data': data
        })

        # reponse.request.user doesn't work either
        user = response.request['user']
我还尝试在
self.client
上的某个地方访问用户对象,但它似乎不存在。一定有办法找到它


此外,此调用的视图不会呈现给模板,因此它不在模板上下文中。

Django docs状态是模拟测试的响应数据。这与视图中使用的
请求
对象不同,因此您不能以这种方式访问
用户

测试客户端不存储该用户,而是存储一个cookie,该cookie指示该用户已作为该用户登录

在测试方法或
设置
方法中,您可以使用以下命令从数据库中获取用户:

user = User.objects.get(username='test@test.test')

好吧,我想到了,但不确定这是否是最好的方法。谢谢