DefaultAccountAdapter和DefaultSocialAccountAdapter?

时间:2014-06-30 06:45:26

标签: django django-allauth

我为通过社交帐户(facebook)注册的用户和通过传统登录注册的用户尝试了以下特定的不同注册流程。

from django.conf import settings
from allauth.account.adapter import DefaultAccountAdapter
from allauth.socialaccount.adapter import DefaultSocialAccountAdapter
class NormalAdapter(DefaultSocialAccountAdapter):

    def get_login_redirect_url(self, request):
        if request.user.last_login == request.user.date_joined:
            return 'survey/'
        else:
            return '/results/'

class CorporateAdapter(DefaultAccountAdapter):

    def get_login_redirect_url(self, request):
        if request.user.last_login == request.user.date_joined:
            return 'corporate/survey/'
        else:
            return 'corporate/results/'

但即使您使用Facebook登录,它也会调用DefaultAccountAdapter的get_login_redirect_url而不是DefaultSocialAccountAdapter。

1 个答案:

答案 0 :(得分:1)

将all auth插件指向正确的适配器类!将以下设置添加到您的django应用程序:

# project/settings.py:
ACCOUNT_ADAPTER = 'python.path.to.your.CorporateAdapter'

SOCIALACCOUNT_ADAPTER ='python.path.to.your.NormalAdapter'

然后保存并重新加载应用程序(如果您使用的是apache,只需重新启动apache)