我使用Twitter作为主要的注册/登录方式,我希望在社交注册后重定向到“accounts/email”链接,因为我想强制新用户提供他们的电子邮件地址。我发现了相同的问题和@Anzel的答案。
from allauth.socialaccount.adapter import DefaultSocialAccountAdapter
class SocialAccountAdapter(DefaultSocialAccountAdapter):
def save_user(self, request, sociallogin, form=None):
super(DefaultSocialAccountAdapter, self).save_user(request, sociallogin, form=form)
return redirect('/accounts/email/')
但是答案对我没用,我得到了以下结果。
AttributeError at /accounts/twitter/login/callback/
'super' object has no attribute 'save_user'
Request Method: GET
Request URL: http://localhost:8000/accounts/twitter/login/callback/?oauth_token=HSowSgAAAAAAuTblAAABVrLCOpE&oauth_verifier=cVrwyB2Vfk2Lgsrwg5fqE0wyzrfnwJ3H
Django Version: 1.9.2
Exception Type: AttributeError
Exception Value:
'super' object has no attribute 'save_user'
super(SocialAccountAdapter, self).save_user(request, sociallogin, form=form)
代替super(DefaultSocialAccountAdapter, self).save_user(request, sociallogin, form=form)
。即,在SocialAccountAdapter
上调用super
,而不是在DefaultSocialAccountAdapter
上调用。 - elethan