Django allauth-在已登录的情况下注册新用户

Django allauth-在已登录的情况下注册新用户,django,django-allauth,Django,Django Allauth,我正在尝试自定义allauth的默认注册视图和注册表单,以允许我在登录时创建其他用户。默认行为阻止我这样做:换句话说,如果我没有经过身份验证,我只能注册一个新帐户 如何覆盖此行为 我想我必须在views.py中覆盖SignupView,但我不确定要查找什么。。。我和RedirectAuthenticatedUserMixin玩过,但没用 Forms.py from allauth.account.forms import SignupForm class SubUserForm(SignupF

我正在尝试自定义allauth的默认注册视图和注册表单,以允许我在登录时创建其他用户。默认行为阻止我这样做:换句话说,如果我没有经过身份验证,我只能注册一个新帐户

如何覆盖此行为

我想我必须在
views.py
中覆盖SignupView,但我不确定要查找什么。。。我和RedirectAuthenticatedUserMixin玩过,但没用

Forms.py

from allauth.account.forms import SignupForm

class SubUserForm(SignupForm):
    USER_TYPES = [
        (2,'customer'),
        (3,'vendor'),
        (4,'supplier')
    ]
    first_name = forms.CharField(max_length=45)
    last_name = forms.CharField(max_length=45)
    user_type = forms.CharField(widget=forms.Select(choices=USER_TYPES))
from allauth.account.views import SignupView

class SubUserSignupView(SignupView):
    template_name = 'accounts/new_user_signup_form.html'
    form_class = SubUserForm
    view_name = 'sub_user_signup'

sub_user_signup = SubUserSignupView.as_view()
urlpatterns = [
    path('sub_user/',views.sub_user_signup,name='sub_user_signup'),
]
视图.py

from allauth.account.forms import SignupForm

class SubUserForm(SignupForm):
    USER_TYPES = [
        (2,'customer'),
        (3,'vendor'),
        (4,'supplier')
    ]
    first_name = forms.CharField(max_length=45)
    last_name = forms.CharField(max_length=45)
    user_type = forms.CharField(widget=forms.Select(choices=USER_TYPES))
from allauth.account.views import SignupView

class SubUserSignupView(SignupView):
    template_name = 'accounts/new_user_signup_form.html'
    form_class = SubUserForm
    view_name = 'sub_user_signup'

sub_user_signup = SubUserSignupView.as_view()
urlpatterns = [
    path('sub_user/',views.sub_user_signup,name='sub_user_signup'),
]
url.py

from allauth.account.forms import SignupForm

class SubUserForm(SignupForm):
    USER_TYPES = [
        (2,'customer'),
        (3,'vendor'),
        (4,'supplier')
    ]
    first_name = forms.CharField(max_length=45)
    last_name = forms.CharField(max_length=45)
    user_type = forms.CharField(widget=forms.Select(choices=USER_TYPES))
from allauth.account.views import SignupView

class SubUserSignupView(SignupView):
    template_name = 'accounts/new_user_signup_form.html'
    form_class = SubUserForm
    view_name = 'sub_user_signup'

sub_user_signup = SubUserSignupView.as_view()
urlpatterns = [
    path('sub_user/',views.sub_user_signup,name='sub_user_signup'),
]
放在上下文中

我的应用允许“家长”用户使用allauth注册多个“孩子”用户(在上面的代码中称为“子用户”)。在我的例子中,一个组织可以创建多个客户、商家、供应商等。当父用户创建子用户时,会向该子用户发送验证电子邮件,然后该子用户激活其帐户并提示输入密码。我使用2份报名表;默认allauth注册(对于父帐户)和自定义注册表单(对于子帐户),该表单也从allauth扩展而来


尽管上面的注册流程运行良好,但父用户在注销时只能注册新的子用户(触发电子邮件验证)。我正在努力确定我需要什么来防止这种情况发生。

我不认为django allauth是为支持您描述的工作流而设计的。此外,这需要澄清:“我只有在注销后才能注册新的儿童用户。”这句话中的“我”与家长用户有什么关系?“注册新用户”是指发送验证,还是指激活帐户?在任何情况下,我认为前进的道路将是编写自定义视图代码,包装allauth功能并使其实现您想要的功能。感谢Paul的反馈。我已经重新措辞并澄清了我以前的一些措辞。请参阅上面最后一段,它回答了您的问题。我在allauth中找不到阻止登录用户注册新帐户的功能。我怀疑它是RedirectAuthenticatedUserMixin,因为它在源代码中包装了默认的SignupView。但我不知道如何覆盖它。我不认为django allauth旨在支持您描述的工作流。此外,这需要澄清:“我只有在注销后才能注册新的儿童用户。”这句话中的“I”与家长用户有什么关系?“注册新用户”是指发送验证,还是指激活帐户?在任何情况下,我认为前进的道路将是编写自定义视图代码,包装allauth功能并使其实现您想要的功能。感谢Paul的反馈。我已经重新措辞并澄清了我以前的一些措辞。请参阅上面最后一段,它回答了您的问题。我在allauth中找不到阻止登录用户注册新帐户的功能。我怀疑它是RedirectAuthenticatedUserMixin,因为它在源代码中包装了默认的SignupView。但我不知道如何去覆盖它。