我正在尝试创建一份申请表,以便想要为我们工作的人可以向我们的组织提出申请。我与客户进行了交谈,他不希望新员工创建自己的用户登录信息。相反,他希望我创建一个管理页面,他将在其中接受或拒绝申请人。如果他接受申请人,它将自动创建用户登录信息,并通过电子邮件向申请人发送其登录信息。用户输入帐户后当然可以更改其登录信息。这怎么办?
我尝试创建注册表,但最终在管理员接受申请人之前创建了一个用户。
User = get_user_model()
class InterpreterCreationForm(UserCreationForm):
address = forms.CharField(widget=forms.Textarea)
phone_number = forms.CharField(max_length=15)
ssn = forms.CharField(max_length=15, required=False)
languages = forms.ModelMultipleChoiceField(queryset=Language.objects.all(), widget=forms.CheckboxSelectMultiple)
class Meta:
model = User
fields = ('username', 'first_name', 'last_name', 'email', 'password1', 'password2')
def save(self, commit=True):
user = super().save(commit=False)
user.is_interpreter = True
if commit:
user.save()
interpreter = Interpreter(
user=user,
address=self.cleaned_data['address'],
phone_number=self.cleaned_data['phone_number'],
)
interpreter.save()
interpreter.languages.set(self.cleaned_data['languages'])
return user
您正在处理用户模型,因此如果您保存,则会创建一个用户。我认为对此没什么可做的。
我会创建自己的模型来模仿用户模型。该模型有两个功能:Delete 和 ConvertToUser。
您需要两个创建一个单独的视图来连接功能。