django python 社交验证发送电子邮件

django python social auth send email

我正在使用 python 社交身份验证进行登录。创建用户后,我想向用户发送一封电子邮件。为此,我正在编写自定义管道

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 适用于其他电子邮件发送功能。

需要建议。谢谢

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

因此,任何其他类型都应表示为这些类型之一。

我的猜测是您发送到 notification_email**kwargs 包含无法表示为 JSON.

的数据类型

要解决这个问题,只发送需要的参数,而不是整个 **kwargs

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

var args = dict()

args['username'] = username
args['template'] = template
# other arguments

notification_email.delay(args)

希望对您有所帮助。