2017-10-16 52 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