在django-allauth中重定向到?next = / accounts / social / connections /

时间:2015-12-28 10:53:50

标签: python django url-redirection django-allauth

我正在尝试重定向/account/profile,但我在使用django-allauth时被重定向到?next=/accounts/social/connections/

有什么想法吗?我的settings.py已经确定了  LOGIN_REDIRECT_URL = '/'并且在我的Twitter应用中,回调网址设置为http://127.0.0.1:8000/accounts/twitter/login/callback/

我也试过创建适配器:

from django.conf import settings
from allauth.account.adapter import DefaultAccountAdapter

class MyAccountAdapter(DefaultAccountAdapter):

    def get_login_redirect_url(self, request):
        path = "/accounts/{username}/"
        return path.format(username=request.user.username)

settings.py内部:

ACCOUNT_ADAPTER = 'sleep.adapter.MyAccountAdapter'

但它再次将我重定向到:

localhost:8000/accounts/login/?next=/accounts/social/connections/

1 个答案:

答案 0 :(得分:1)

可能会发生一些事情:

1)社交媒体登录使用SOCIALACCOUNT_ADAPTERACCOUNT_ADAPTER(不是settings.py)指定的类。因此,对于您当前的settings.py,当您连接到Twitter时,它将不会调用sleep.adapter.MyAccountAdapter.get_login_redirect_url()

2)/accounts/social/connections/是名为socialaccount_connections的视图的默认网址。您可能尝试连接您的Twitter帐户,而不是通过Twitter 登录

确保模板中的provider_login_url标记不使用 process =" connect" 参数。

{% load socialaccount %}
{% providers_media_js %}
<a href="{% provider_login_url "facebook" process="login" method="js_sdk" %}">Login with your Facebook Account</a>