2017-10-16 55 views
1

Django的Allauth不同的登录重定向我试图用Django-AllauthFacebookTwitter不同的页面重定向Django 1.11.5
我的settings.py
我已经试过这样的事情,但它并没有我的情况下工作:对Facebook和Twitter的Python 2.7

import allauth.socialaccount.providers as ASP 

if ASP == 'facebook': 
    LOGIN_REDIRECT_URL = '/test/' 
else: 
    LOGIN_REDIRECT_URL = '/' 

我想知道我怎么可以重定向的URL,在不同链路上不同的社交媒体?

请告诉我代码中的改进。

+0

有没有解决这个问题.....? –

+0

你把这段代码放在哪里?你为此尝试了allauth信号吗? http://django-allauth.readthedocs.io/en/latest/signals.html – anupsabraham

+0

这是我的settings.py –

回答

0

你可以使用官方文档中介绍的方法:

https://django-allauth.readthedocs.io/en/latest/advanced.html?highlight=LOGIN_REDIRECT_URL#custom-redirects

这不正是你想要的。

或者使用一个简单的解决方法,它将在LOGIN_REDIRECT_URL中定义一个路由,然后根据sign in方法或社交帐户类型将用户转发/重定向到正确的页面。像这样:

LOGIN_REDIRECT_URL = '/after-login-example/' 

然后:

# view for that url 
def example_view(request): 
    account = SocialAccount.objects.get(user=request.user) 
    if account.provider == "Twitter": 
     return HttpResponseRedirect(<your twitter page>) 
    elif: 
    ... 

注1:我没有测试上面的例子中,它假定用户具有一种或另一种方法(不是两个),但即使条件是不同的它代表了整体方法。注2:第一个(也是官方的)显然是更好的解决方案。

+0

你有任何例子...这将清除我的想法。 –

+0

@JafferWilson刚刚编辑了答案,检查它是否现在更清晰。 – dethos

+0

如果用户连接了多个社交帐户,则会失败。但我想这个答案几乎是准确的。 – anupsabraham