Python 运行测试时,Django用户不在请求对象中
我正在运行一个测试,让用户登录,发送一些POST数据,并分析响应。虽然我可以硬编码用户信息,但我不明白为什么我不能从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
请求
对象访问用户
对象。以下是我的测试结果:
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')
好吧,我想到了,但不确定这是否是最好的方法。谢谢