Python Django-延迟创建数据库条目

Python Django-延迟创建数据库条目,python,django,postgresql,Python,Django,Postgresql,我有一个Django应用程序,我在视图中创建了一个db条目。然后我想对新条目执行后台处理。我没有将创建的对象发送给任务,而是发送对象的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_

我有一个Django应用程序,我在视图中创建了一个db条目。然后我想对新条目执行后台处理。我没有将创建的对象发送给任务,而是发送对象的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)
,它将作为例外。我不明白为什么会出现这个错误,因为对象应该在DB中?有人知道怎么解决这个问题吗?我真的不想到处添加sleep命令

我正在使用Postgres作为我的数据库。

试试这个

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

非常感谢!已经为此奋斗了几个小时!实际上我不得不使用transaction.non_原子请求,因为原子请求已经打开了