我正在尝试将超级用户连接到 Django 测试客户端,然后使用 GET 方法访问 Django 管理界面中的页面。但是,即使超级用户正确登录,我也会重定向到登录页面。
def test(self) -> None:
client = Client()
user = User.objects.create(username='user', is_superuser=True)
client.force_login(user)
response = client.get(f'/admin/management/establishment/', follow=True)
print("Redirect chain\t", response.redirect_chain)
print("Request user\t", response.wsgi_request.user)
print("Is superuser\t", response.wsgi_request.user.is_superuser)
Redirect chain [('/admin/login/?next=/admin/management/establishment/', 302)]
Request user user
Is superuser True
你知道我为什么会有这种重定向以及如何避免它吗?
似乎将用户设置为超级用户is_superuser=True
不允许他们访问 Django 管理界面。
只有员工才能登录,所以is_staff=True
必须在用户创建中添加该属性。
令人惊讶的是,默认情况下超级用户不被视为员工。
使用以下行创建用户不会重定向到登录页面:
user = User.objects.create(username='user', is_superuser=True, is_staff=True)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句