Django模型在芹菜中不更新

2024-04-27 22:35:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做一个芹菜任务,更新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,我不明白为什么会发生这种情况


Tags: django模型sendid数据库false电子邮件email
1条回答
网友
1楼 · 发布于 2024-04-27 22:35:35

问题是,您正在调用用户模型上的save(),当您更改看起来是UserEmail(或类似的)模型时。你知道吗

要正确解决此问题,请跟踪要保存的模型,因此在示例中:

...
user.user_mail.invitation_sent = True
# call save on user_email instance
user.user_mail.save() #  <   here 

虽然公平地说,从你的例子,你一定要保持你的电子邮件操作顺序跟踪。因此,发送电子邮件,如果它成功了,然后标记为这样,不要说你做了什么之前,你做了。你知道吗

相关问题 更多 >