如何从Django allauth注册中删除电子邮件字段? No settings here show any option to remove it
有什么想法吗?
编辑:我的自定义表单:
class AllauthSignupForm(forms.Form):
captcha = ReCaptchaField()
class Meta:
model = User
fields = ('username', 'password1', 'password2')
def signup(self, request, user):
""" Required, or else it throws deprecation warnings """
pass
settings.py
ACCOUNT_SIGNUP_FORM_CLASS = 'draft1.forms.AllauthSignupForm'
答案 0 :(得分:0)
试试这个:你的settings.py
添加
ACCOUNT_USER_MODEL_EMAIL_FIELD = None
ACCOUNT_EMAIL_REQUIRED = False
如果您希望用户使用用户名
登录,则可能还需要添加此项ACCOUNT_USERNAME_REQUIRED = True
ACCOUNT_AUTHENTICATION_METHOD = 'username'
可替换地:
ACCOUNT_SIGNUP_FORM_CLASS='yourcustomform'
表格
class YourCustomForm(UserCreationForm):
class Meta:
model = User
fields = ('username', 'password1', 'password2', ...)
答案 1 :(得分:0)
您是否尝试exclude
email
字段?
class AllauthSignupForm(forms.Form):
captcha = ReCaptchaField()
class Meta:
model = User
fields = ('username', 'password1', 'password2')
exclude = ('email',)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields.pop('email')
def signup(self, request, user):
""" Required, or else it throws deprecation warnings """
pass
答案 2 :(得分:0)
我遇到了同样的问题,所以我去了外部图书馆/ site-packages / allauth / account / forms.py并注释了第300-314和266-269行。试一试:)