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