gpt4 book ai didi

django - 匿名用户与 django.test.client.login()

转载 作者:行者123 更新时间:2023-11-28 20:49:32 25 4
gpt4 key购买 nike

我正在测试登录功能。

def setUpClass(cls):
super(BasePage_loggedin, cls).setUpClass()
cls.selenium = WebDriver()
cls.client = Client()
cls.user_1 = MyUser.objects.create_user(username='myself',password='12345')
cls.client.login(username=cls.user_1.username, password=cls.user_1.password)

# create session cookie:
session = SessionStore()
session[SESSION_KEY] = cls.user_1.pk
session[BACKEND_SESSION_KEY] = settings.AUTHENTICATION_BACKENDS[0]
session[HASH_SESSION_KEY] = cls.user_1.get_session_auth_hash()
session.save()

# Finally, create the cookie dictionary
cookie = {
'name': settings.SESSION_COOKIE_NAME,
'value': session.session_key,
'secure': False,
'path': '/',
}
# add the session cookie
cls.selenium.get('{}'.format(cls.live_server_url))
cls.selenium.add_cookie(cookie)
cls.selenium.refresh()
cls.selenium.get('{}'.format(cls.live_server_url))

所以我可以通过登录页面,但是当我执行 request.user 来检查该用户的数据时,它是一个 AnonymousUser

最佳答案

当您以这种方式创建用户时 - 我相信这与密码有关。将密码设置为这样的字符串并不会像您认为那样做。

您可以像那样创建用户 - 然后在创建用户之后但在登录之前添加:

cls.user_1.set_password('12345')
cls.user_1.save()

然后用这样的东西登录用户:

cls.client.login(username=cls.user_1.username, password='12345')

我相信它与密码的散列或类似的东西有关 - 自从我偶然发现它已经有一段时间了,但我记得我遇到过与你完全相同的问题。

像这样的东西应该可以工作:

cls.selenium = WebDriver()
cls.client = Client()
cls.user_1 = MyUser.objects.create_user(username='myself',password='12345')
cls.user_1.set_password('12345')
cls.user_1.save()
cls.client.login(username=cls.user_1.username, password='12345')

关于django - 匿名用户与 django.test.client.login(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52982653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com