Как отправить письмо со сброшенным паролем в Django при создании пользователя?
Я хочу иметь возможность позволить администратору создавать учетные записи пользователей, а затем, вместо того, чтобы устанавливать пароль для пользователя, пользователь автоматически получал бы письмо со сброшенным паролем.
Представление для создания пользователя, которое также включает модель Member
, следующее:
def newmember(request):
if request.method == 'POST':
nu_form = NewUser(request.POST)
nm_form = NewMember(request.POST)
if nu_form.is_valid() and nm_form.is_valid():
nusave = nu_form.save()
nmsave = nm_form.save(commit = False)
nmsave.user = nusave
nmsave.save()
return redirect(members)
else:
print(nu_form.errors)
print(nm_form.errors)
else:
nu_form = NewUser()
nm_form = NewMember()
context = {
'nu_form': nu_form,
'nm_form': nm_form}
return render(request, 'web/newmember.html', context)
Как сделать так, чтобы при создании нового пользователя Django автоматически отправлял ему письмо с запросом на сброс пароля?
В вашем models.py:
def save(self, *args, **kwargs):
send_mail('subject', 'message', 'your email', 'user email')
return super().save(*args, **kwargs)
Для того чтобы отправить письмо при создании пользователя, необходимо определить метод, который отправляет письмо, как показано ниже :-
Создайте имя текстового файла, например, 'email_content.txt'
Пожалуйста, сбросьте пароль для вашего профиля {{имя пользователя}}
. Нажмите здесьОбновите метод
newmember
и добавьте в него следующий код :-template = get_template('email_content.txt') context = {"usename": nmsave.user.username} content = template.render(context) email = EmailMessage( "Congratulation, please reset your account password", content, 'App Name' <sender_email> ) email.content_subtype = "html" email.send()
добавьте приведенный выше код в блок try catch