request.user没有被我的django auth后端填充

时间:2014-05-19 17:47:00

标签: python django django-rest-framework django-authentication django-users

我编写了一个授权后端类,根据django docs实现authenticate方法和get_user方法。我添加了

AUTHENTICATION_BACKENDS = ('src.lib.auth_backend.MyBackend',)

到我的settings.py文件。通过print语句,我可以看到我的代码正在运行,并且它返回了我在settings.py中用AUTH_USER_MODEL定义的类的用户对象。

当我在django-rest-framework has_object_permsion函数中获取请求对象时,request.user始终设置为AnonymousUser

我错过了一步吗? 我已安装django.contrib.auth.middleware.AuthenticationMiddleware并尝试使用def test_get_user(self): client = APIClient() # rest_framework.test.APIClient client.login(username='user1',password='user1Password') res = client.get('/websvc/users/' + str(user.user_id) + '/') # request.user will be AnonymousUser self.assertEqual(res.status_code, 200) # it will be 403, which is appropriate for AnonymousUser 并尝试相同的结果。

此故障发生在以下单元测试中

{{1}}

1 个答案:

答案 0 :(得分:0)

有些事情可能是错的。

您是否在运行测试之前创建了用户?

什么返回client.login

向我们展示整个测试,告诉你出了什么问题。