2016-08-22 62 views
1

后以电子邮件验证我使用Twitter主注册/登录,我想重定向到“帐户/邮件”链接社会注册后,因为我想迫使新用户提供他们的电子邮件。我发现同样的question并回答@AnzelDjango的allauth重定向社会注册

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' 
+0

尝试'超级(SocialAccountAdapter,自我).save_user(请求,sociallogin,形式=形式)'代替'超级(DefaultSocialAccountAdapter,自我).save_user(请求,sociallogin,形式=形式)'。即,调用'super'上'SocialAccountAdapter'代替DefaultSocialAccountAdapter' – elethan

+0

的'我做到了,错误disapear,问题是,它永诺重定向到验证的电子邮件地址甚至对现有用户。 –

回答

2

在setting.py我只添加这两条线和忘记了适配器:

SOCIALACCOUNT_AUTO_SIGNUP = True 
SOCIALACCOUNT_EMAIL_REQUIRED = True 

现在注册后或登录其redircts新用户只/帐号/社会/注册/这个观点实际上强迫用户提交自己的EAMIL d过程进行验证。