你可以在重写allauth的allauth.socialaccount.forms.SignupForm中执行一些操作,并在注册过程中检查域。 Discalmer:这一切都是在没有测试的情况下编写的,但是其中的一些内容应该可以工作。
# settings.py
# not necesarry, but it would be a smart way to go instead of hardcoding it
ALLOWED_DOMAIN = 'example.com'
。
# forms.py
from django.conf import settings
from allauth.socialaccount.forms import SignupForm
class MySignupForm(SignupForm):
def clean_email(self):
data = self.cleaned_data['email']
if data.split('@')[1].lower() == settings.ALLOWED_DOMAIN:
raise forms.ValidationError(_(u'domena!'))
return data
在你的URL重写allauth默认值(之前包括Django的allauth的把这个)
# urls.py
from allauth.socialaccount.views import SignupView
from .forms import MySignupForm
urlpatterns = patterns('',
# ...
url(r"^social/signup/$", SignupView.as_view(form_class=MySignupForm), name="account_signup"),
# ...
)
我不知道对于 “^社会/注册/ $”,重新检查。
并在创建自定义适配器后,根据插件文档中的配置部分将其注册为'settings.SOCIALACCOUNT_ADAPTER'。 – Matt
供将来参考我发现我不得不使用'u = sociallogin.user',否则如果用户之前不存在,我会得到一个错误。 –