django-allauth适配器重定向

时间:2014-04-24 07:09:52

标签: django django-allauth

我正在利用django-allauth为我的物业管理应用程序提供Google身份验证。以下是我正在寻找的注册工作流程:

  
      
  1. 新经理进入注册页面,其中包含"注册Google"按钮。
  2.   
  3. 他们点击按钮并登录Google。
  4.   
  5. 在Google的回电话中,他们会看到一个表格以获取更多信息。
  6.   
  7. 当他们提交此表单时,会创建他们的用户帐户和经理个人资料,并将其重定向到他们公司的主页。
  8.   

我试图处理这个问题"重定向到公司的主页"通过适配器。我遇到的问题是" get_login_redirect_url"函数在初始Google登录后执行,但在我收集工作日程表的注册表单之前执行,因此我在适配器重定向上获得了一个DoesNotExist,因为它是在创建managerprofile之前调用的。

执行这些重定向的正确方法是什么?

settings.py

ACCOUNT_SIGNUP_FORM_CLASS = 'managers.signup.ManagerProfileSignupForm'
SOCIALACCOUNT_AUTO_SIGNUP = False
SOCIALACCOUNT_ADAPTER = 'managers.adapter.ManagerSocialAccountAdapter'
ACCOUNT_ADAPTER = 'managers.adapter.ManagerAccountAdapter'


adapters.py

class ManagerSocialAccountAdapter(DefaultSocialAccountAdapter):
    def get_connect_redirect_url(self, request, socialaccount):
        return reverse('company_details', args=(request.user.managerprofile.company.pk,))

class ManagerAccountAdapter(DefaultAccountAdapter):
    def get_login_redirect_url(self, request):
        return reverse('company_details', args=(request.user.managerprofile.company.pk,))

1 个答案:

答案 0 :(得分:0)

在应用程序的settings.py上设置LOGIN_REDIRECT_URL:

我有这个值,重定向到主页:

LOGIN_REDIRECT_URL = '/'