Django DefaultAccountAdapter和DefaultSocialAccountAdapter?
我尝试了以下方法来为通过社交账户(facebook)注册的用户和通过传统登录注册的用户指定不同的注册流程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
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)