Поддерживает ли Django транзакции из коробки? - PullRequest
0 голосов
/ 11 июля 2019

У меня есть набор функций, которые используют модули управления / команд Django для запуска нескольких заданий cron, которые будут обновлять модель. Однако мне также нужно, чтобы они выполнялись как транзакции "все или ничего". Предоставляет ли Django способ определения транзакций?

1 Ответ

1 голос
/ 11 июля 2019

Если вы пытаетесь обернуть кусок кода в транзакцию, вы можете использовать transaction.atomic в качестве декоратора или менеджера контекста, например,

from django.db import transaction

@transaction.atomic
def management_command(args):
    # This code executes inside a transaction.
    do_stuff()

или

def management_command(args):
    # This code executes in autocommit mode (Django's default).
    do_stuff()

    with transaction.atomic():
        # This code executes inside a transaction.
        do_more_stuff()

Подробнее см. https://docs.djangoproject.com/en/2.2/topics/db/transactions/#controlling-transactions-explicitly.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...