django python social auth发送电子邮件

时间:2015-09-28 06:48:36

标签: 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 个答案:

答案 0 :(得分:0)

JSON只接受几种数据类型:null,数组,布尔值,数字,字符串和对象。

所以,其他任何东西都应该表示为其中一种类型。

我的猜测是,您发送到**kwargs的{​​{1}}包含无法表示为JSON的数据类型。

要解决此问题,请仅发送所需的参数,而不是整个notification_email

我会创建一个字典并包含所有内容:

**kwargs

我希望它有所帮助。