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)
希望对您有所帮助。
我正在使用 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)
希望对您有所帮助。