Я пытаюсь атомарно увеличивать простой счетчик в 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, это должно обернуть функцию в транзакции и сделать прирост атомом. Но это не работает, и в обновлении счетчика есть условие гонки. Как этот код можно сделать потокобезопасным?