我的系统中有两种类型的用户,我想在注册时分配适当的组。参考使用 django-allauth 时如何自定义用户配置文件 https://stackoverflow.com/questions/12303478/how-to-customize-user-profile-when-using-django-allauth,我想我可以覆盖注册表单并执行以下操作:
class CustomSignupForm(forms.Form):
login_widget = forms.TextInput(attrs={'type': 'email',
'placeholder': _('email'),
'autofocus': 'autofocus',
'class': 'form-control'
})
email = forms.EmailField(label='Email', widget=login_widget)
password = PasswordField(label='Password', widget=forms.PasswordInput(attrs={'class': 'form-control'}))
password2 = PasswordField(label='Re-type Password', widget=forms.PasswordInput(attrs={'class': 'form-control'}))
def save(self, request, user):
role = request.GET.get('type')
print(role)
group = role or "group1"
g = Group.objects.get(name=group)
user.groups.add(g)
user.save()
但我不断收到以下错误:
save() missing 1 required positional argument: 'user'
另外,我已将 allauth 配置为使用电子邮件登录。
感谢您的帮助。
注册是覆盖而不是保存的方法。
class LocalSignupForm(forms.Form):
pass
def signup(self, request, user):
role = request.session.get('user_type')
group = role or "Default"
g = Group.objects.get(name=group)
user.groups.add(g)
user.save()
另外设置必须是
ACCOUNT_SIGNUP_FORM_CLASS = 'useraccount.forms.LocalSignupForm'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)