簡體   English   中英

Django-延遲創建數據庫條目

[英]Django - Delay in creating database entry

我有一個Django應用,可在視圖中創建數據庫條目。 然后,我想對新條目執行后台處理。 我將對象的ID發送給任務,而不是將創建的對象發送給任務,然后后台任務可以按此說明獲取db對象。 下面是我的代碼:

# In tasks.py
@shared_task
def my_task(model_id):
    my_model = MyModel.objects.get(pk=model_id)
    # Do stuff with my_model

# In views.py:
def some_view(request):
    if request.method == 'POST' and request.is_ajax():
        instance = MyModel.objects.create(**kwargs)
        tasks.my_task.delay(instance.id)
        ....

但是,當我嘗試在后台任務中獲取對象時,我得到匹配的查詢不存在錯誤。 如果我在獲取對象之前添加了sleep(1) ,則它的作用與眾不同。 我不明白為什么出現此錯誤,因為對象應該在數據庫中? 有人知道如何解決這個問題嗎? 我真的不想到處添加一個sleep命令。

我使用Postgres作為我的數據庫。

嘗試這個

from django.db import transaction
with transaction.atomic():
    instance = MyModel.objects.create(**kwargs)
tasks.my_task.delay(instance.id)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM