django python social auth написать письмо
Я использую Python Social Auth для входа в систему. После создания пользователя я хочу отправить пользователю электронное письмо. Для этого я пишу пользовательский конвейер
def send_confirmation_email(strategy, details, response, user=None, *args, **kwargs):
if user:
if kwargs['is_new']:
template = "email/social_registration_confirm.html"
subject = "Account Confirmation"
email = user.email
print(user.username)
username = user.username
kwargs.update(subject=subject, email=email, username=username)
notification_email.delay(template, **kwargs)
я использую celery
отправить по электронной почте. Когда я отправляю письмо, я получаю сообщение об ошибке <UserSocialAuth: some_username> is not JSON serializable
Почему я получаю эту ошибку. notification_email
работает для других функций отправки электронной почты.
Нужно предложение. Спасибо
1 ответ
JSON принимает только несколько типов данных: нуль, массивы, логические значения, числа, строки и объекты.
Итак, все остальное должно быть выражено как один из этих типов.
Я думаю, что **kwargs
что вы отправляете notification_email
содержит тип данных, который не может быть выражен как JSON.
Чтобы решить эту проблему, отправьте только необходимые аргументы, а не весь **kwargs
,
Я бы создал словарь и включил в него все:
var args = dict()
args['username'] = username
args['template'] = template
# other arguments
notification_email.delay(args)
Я надеюсь, что это помогает.