Django AllAuth - 在 login/signup 之后保存会话数据
Django AllAuth - save session data after login/signup
如何在用户使用 Django-AllAuth 登录后立即执行一些逻辑?在我开始实施 AllAuth 之前,我的登录视图在用户登录后包含了这一点额外的逻辑
...
login(request, user)
# Check if the user has a league in session
if 'league_id' in self.request.session:
# Save the league to this user's user instance
league_id = self.request.session.pop('league_id') # pop removes it from the session
league = League.objects.get(pk = league_id)
league.user = user
league.save()
(这里的目的是我允许用户在登录前创建一个 'league' 实例,并且在他们登录后,联盟通过存储在中的 league_id 关联到他们的用户实例会话。)
我尝试扩展 allauth 中提供的 form_valid() 方法 LoginView
,但似乎从未调用过 form_valid() 方法。
有什么办法可以处理吗?
你可以使用 signals.
有一个用户登录后立即触发的信号:allauth.account.signals.user_logged_in
如何在用户使用 Django-AllAuth 登录后立即执行一些逻辑?在我开始实施 AllAuth 之前,我的登录视图在用户登录后包含了这一点额外的逻辑
...
login(request, user)
# Check if the user has a league in session
if 'league_id' in self.request.session:
# Save the league to this user's user instance
league_id = self.request.session.pop('league_id') # pop removes it from the session
league = League.objects.get(pk = league_id)
league.user = user
league.save()
(这里的目的是我允许用户在登录前创建一个 'league' 实例,并且在他们登录后,联盟通过存储在中的 league_id 关联到他们的用户实例会话。)
我尝试扩展 allauth 中提供的 form_valid() 方法 LoginView
,但似乎从未调用过 form_valid() 方法。
有什么办法可以处理吗?
你可以使用 signals.
有一个用户登录后立即触发的信号:allauth.account.signals.user_logged_in