我正在使用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
适用于其他电子邮件发送功能。
需要建议。谢谢
答案 0 :(得分:0)
JSON只接受几种数据类型:null,数组,布尔值,数字,字符串和对象。
所以,其他任何东西都应该表示为其中一种类型。
我的猜测是,您发送到**kwargs
的{{1}}包含无法表示为JSON的数据类型。
要解决此问题,请仅发送所需的参数,而不是整个notification_email
。
我会创建一个字典并包含所有内容:
**kwargs
我希望它有所帮助。