Почему возникает ошибки при подключении celery к отправке на почту при passord_reset?

Я пытаюсь подключить celery таску для отправки на почту при сбросе пароля. Использую вьюхи django(PasswordResetView). Я создал форму и наследовался от PasswordResetForm. Переопределил метод send_mail, который отпраляет сообщение на почту.

class CustomResetPasswordForm(PasswordResetForm):
    email = forms.EmailField(widget=forms.EmailInput(attrs={'class': 'form_control'}))

    def send_mail(self, subject_template_name, email_template_name,
                  context, from_email, to_email, html_email_template_name=None):


        send_email_for_reset_password.apply_async(args=[subject_template_name, email_template_name,
                                            context, from_email, to_email, html_email_template_name])

Логику отправки я поместил в таску send_email_for_reset_password

def send_email_for_reset_password(subject_template_name, email_template_name,
                                            context, from_email, to_email, html_email_template_name):
    """
          Send a django.core.mail.EmailMultiAlternatives to `to_email`.
          """
    subject = loader.render_to_string(subject_template_name, context)
    # Email subject *must not* contain newlines
    subject = ''.join(subject.splitlines())
    body = loader.render_to_string(email_template_name, context)
    email_message = EmailMultiAlternatives(subject, body, from_email, [to_email])
    if html_email_template_name is not None:
        html_email = loader.render_to_string(html_email_template_name, context)
        email_message.attach_alternative(html_email, 'text/html')
    email_message.send()

Но возникает ошибка

EncodeError at /user/password_reset/
Object of type CustomUser is not JSON serializable

Так же я пытался только email_message.send(), но ошибка та же. Что я делаю не так?


Ответы (0 шт):