我编写了一个授权后端类,根据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}}
答案 0 :(得分:0)
有些事情可能是错的。
您是否在运行测试之前创建了用户?
什么返回client.login
?
向我们展示整个测试,告诉你出了什么问题。