Невозможно изменить данные учетной записи и не отправляется электронная почта после редактирования - Django

Итак... Мой основной замысел состоит в том, что когда пользователь редактирует свой аккаунт и меняет email, система должна изменить всю остальную информацию, кроме email, и отправить письмо на новый email (введенный пользователем) со ссылкой подтверждения. После нажатия на ссылку система должна перенаправить пользователя на другую страницу и изменить электронную почту для этой учетной записи. Мой код изменял всю информацию (без отправки электронной почты) до того, как я добавил все эти штучки с электронной почтой. После того, как я его добавил, он не изменяет другие данные учетной записи и не отправляет письмо с подтверждением.

view (я знаю, что есть неполный код, который мне нужно добавить):

class NormalUserEditView(generic.UpdateView):
form_class = EditProfileFormNormal
template_name = 'authentication/edit_normalprofile.html'
success_url = reverse_lazy('profile')

def form_valid(self, form):
    me = self.request.user.id
    myuser = User.objects.get(email=self.request.POST['email'])
    if myuser.email != myuser.email:
        current_site = get_current_site(self.request)
        email_subject = "Email has been changed for", myuser, " - some website"
        email_message = render_to_string('authentication/email_confirmation.html', {
                'name': myuser.first_name,
                'domain': current_site.domain,
                'uid': urlsafe_base64_encode(force_bytes(myuser.pk)),
                'token': generate_token.make_token(myuser),
            })
        email = EmailMessage(
            email_subject,
            email_message,
            settings.EMAIL_HOST_USER,
            [myuser.email],
            )
        email.fail_silently=True
        email.send()
    messages.success(self.request, f'Account Edit: Successful')
    return super().form_valid(form)

def get_object(self):
    return self.request.user
Вернуться на верх