django.db.transaction.TransactionManagementError: select_for_update cannot be used outside of a transaction.
トランザクションをしないで、取ってきた値利用すると、
djangoにトランザクションしてないぞっておこられるみたい。
from django.db import transaction
@transaction.atomic
def your_function():
your_model.objects.select_for_update().filter(...)
トランザクションとかどうでもいい関数だったら、関数にトランザクションをつけられる
from django.db import transaction
def your_function():
with transaction.atomic():
your_model.objects.select_for_update().filter(...)
ちゃんとやる場合は、transaction内でselect_for_update()
とかを呼ぶとできる