Objects.get(id = id) работает только случайным образом

Я думаю, что это несколько связано: link. Я создаю запись модели:

def bulk_asset_update(stores, links, img):
    def do_update(id):
        task = ThreadTask.objects.get(pk = id) ## <--- DOES NOT EXIST SOMETIMES

        ...
        task.is_done = True
        task.timestamp_end = timezone.now()
        task.save()

    task = ThreadTask()
    task.name = "update"
    task.save()

    t = threading.Thread(target = do_update, args = [task.id])
    t.setDaemon(True)
    t.start()   
    return {"id": task.id}

Иногда (каждый 5-й раз или около того) строка ThreadTask.get(pk = id) не работает - поэтому я подозреваю, что она еще не записана в базу данных, возможно? Я попробовал заменить строки:

task = ThreadTask()
task.name = "bulk asset update"
task.save()

с:

task = ThreadTask.objects.create(name = "update")

что, похоже, работает лучше. Но могу ли я убедиться, что объект task действительно сохраняется первым, прежде чем продолжить выполнение кода?

Вернуться на верх