繁体   English   中英

Django模型未在celery任务中更新

[英]Django model does not update in celery task

我试图做一个芹菜任务,更新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(或类似形式)的模型。

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

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

尽管从您的示例中可以看出,您绝对应该跟踪处理电子邮件的操作顺序。 因此,发送电子邮件,如果成功,则将其标记为电子邮件,不要说在做之前先做过什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM