我想做一个芹菜任务,更新django模型并发送电子邮件。电子邮件已正确发送,但模型未保存到数据库中。你知道为什么会这样吗?下面是我的示例任务:
@app.task()
def send_invitation(company_id):
users = User.objects.filter(company_id=company_id, user_email__invitation_sent=False)
for user in users:
user.user_email.invitation_sent = True
user.save()
send_email(user)
我尝试了几种保存选项,例如user.user_email.save()
,但是当任务完成时,邮件会被发送,但是invitation_sent
会保持False
,我不明白为什么会发生这种情况
问题是,您正在调用用户模型上的
save()
,当您更改看起来是UserEmail(或类似的)模型时。你知道吗要正确解决此问题,请跟踪要保存的模型,因此在示例中:
虽然公平地说,从你的例子,你一定要保持你的电子邮件操作顺序跟踪。因此,发送电子邮件,如果它成功了,然后标记为这样,不要说你做了什么之前,你做了。你知道吗
相关问题 更多 >
编程相关推荐