簡體   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