在我的应用程序中,我希望“父用户”添加其他用户。它应该将它们作为用户添加到自定义用户模型中,但不应该提供设置密码的选项,而是设置随机密码。 目前我似乎无法隐藏表单上的密码。因此,这是第一步,添加的用户不应该看到密码字段,然后添加用户后,它应该设置随机密码,并通过电子邮件向他们发送密码。你知道吗
如果这是一个错误的方向,还有什么其他的选择。 表格
class AddStaffMember(UserCreationForm):
usrtype = forms.ChoiceField(choices=[('Admin','Admin'),('Manager','Manager'),('Employee','Employee')],label="User Type: See below for descriptions" )
password1 = forms.HiddenInput()
password2 = forms.HiddenInput()
class Meta:
model = get_user_model()
fields = ("firstname","lastname","email","usrtype","password1","password2")
labels = {
"firstname": _("First Name"),
"lastname": _("Last Name"),
"email": _("E-mail"),
}
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
型号
class AddStaffView(CreateView):
form_class = forms.AddStaffMember
success_url = reverse_lazy('nodisoapp:home')
template_name = "scrty/addstaff.html"
def form_valid(self, form):
self.object = form.save(commit=False)
self.object.password1 = get_random_string(length=8)
self.object.password2 = self.object.password1
self.object.save()
message = render_to_string('scrty/invite_email.html',{
'user':self.object.firstname,
'username':self.object.email,
'sender':self.request.user.firstname,
'domain':'127.0.0.1:8000/nodiso',
'password':self.object.password,
})
mail_subject = 'You have been invited to join Nodiso'
email = EmailMessage(mail_subject, message, to=[self.object.email])
email.send()
return super(AddStaffView, self).form_valid(form)
目前没有回答
相关问题 更多 >
编程相关推荐