Атомный инкремент счетчика в Джанго

Я пытаюсь атомарно увеличить простой счетчик в Django. Мой код выглядит так:

from models import Counter
from django.db import transaction

@transaction.commit_on_success
def increment_counter(name):
    counter = Counter.objects.get_or_create(name = name)[0]
    counter.count += 1
    counter.save()

Если я правильно понимаю Django, это должно обернуть функцию в транзакцию и сделать приращение атомарным. Но это не работает, и в обновлении счетчика есть условие гонки. Как этот код можно сделать потокобезопасным?

Ответы на вопрос(6)

Ваш ответ на вопрос