Django allauth-在已登录的情况下注册新用户
我正在尝试自定义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
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。但我不知道如何去覆盖它。