重定向使用社交帐户登录的用户

时间:2018-01-04 21:25:10

标签: python django

我正在使用Django allauth进行注册和社交认证。对于使用电子邮件注册的用户,他们会根据用户名作为slug正常地重定向到他们的个人资料。例如,像这样:

views.py

class RegisterView(SignupView):
    form_class = RegisterForm
    template_name = 'oauth/auth_form.html'

    def form_valid(self, form):
        return redirect('profiles:Index', slug=form.cleaned_data['username'])

用户被重定向到配置文件应用程序,其中包含一个Index视图,该视图根据slug(输入的用户名)显示其配置文件。这是正常的,但是,当我尝试使用Facebook或Google进行社交登录时,它会将我重定向到/ accounts / profile /#,这是默认的Django个人资料页面。我希望将它们重定向到配置文件应用程序,/profiles/{their username}我怎样才能实现这一目标?

2 个答案:

答案 0 :(得分:0)

我认为这个用例/情况在他们的(django-allauth)文档中有描述。您可以查看here

基本上你需要使用该功能创建一个自定义适配器类(根据具体情况继承自allauth.account.adapter.DefaultAccountAdapterallauth.socialaccount.adapter.DefaultSocialAccountAdapter)并使用ACCOUNT_ADAPTER变量指向它设置。

答案 1 :(得分:0)

对于类似错误

AttributeError:“ SocialAccountAdapter”对象没有属性 'is_safe_url'

如果您创建继承allauth.account.adapter.DefaultAccountAdapter的自定义适配器,请在settings.py中设置ACCOUNT_ADAPTER

如果为allauth.socialaccount.adapter.DefaultSocialAccountAdapter,请在settings.py中设置SOCIALACCOUNT_ADAPTER

相关问题