Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django allauth自定义注册表单,用于分配不同的组_Django_Django Allauth - Fatal编程技术网

django allauth自定义注册表单,用于分配不同的组

django allauth自定义注册表单,用于分配不同的组,django,django-allauth,Django,Django Allauth,我在系统中有两种类型的用户,我想在注册时分配适当的组。关于,我想我可以覆盖注册表单并执行以下操作: class CustomSignupForm(forms.Form): login_widget = forms.TextInput(attrs={'type': 'email', 'placeholder': _('email'),

我在系统中有两种类型的用户,我想在注册时分配适当的组。关于,我想我可以覆盖注册表单并执行以下操作:

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'
这是解决办法