Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django DefaultAccountAdapter和DefaultSocialAccountAdapter?_Django_Django Allauth - Fatal编程技术网

Django DefaultAccountAdapter和DefaultSocialAccountAdapter?

Django DefaultAccountAdapter和DefaultSocialAccountAdapter?,django,django-allauth,Django,Django Allauth,我尝试了以下方法来为通过社交账户(facebook)注册的用户和通过传统登录注册的用户指定不同的注册流程 from django.conf import settings from allauth.account.adapter import DefaultAccountAdapter from allauth.socialaccount.adapter import DefaultSocialAccountAdapter class NormalAdapter(DefaultSocialAcc

我尝试了以下方法来为通过社交账户(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的url。

将所有身份验证插件指向正确的适配器类!将以下设置添加到django应用程序:

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

SOCIALACCOUNT_ADAPTER ='python.path.to.your.NormalAdapter'
然后保存并重新加载应用程序(如果您使用apache,只需重新启动apache)