如何在用户使用 Django-AllAuth 登录后立即实现一些逻辑?在我开始实现 AllAuth 之前,我的登录 View 在用户登录后包含了一些额外的逻辑
...
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()
(此处的目的是允许用户在登录之前创建一个“联赛”实例,并在登录后,联赛通过存储在 session 中的 league_id 与其用户实例关联。)
我尝试扩展 allauth 中提供的 form_valid() 方法 LoginView
但看起来好像 form_valid() 方法从未被调用。
有什么想法可以解决这个问题吗?
最佳答案
您可以使用signals .
用户登录后会立即触发一个信号:allauth.account.signals.user_logged_in
关于Django AllAuth - 登录/注册后保存 session 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28144789/