Chapter 01無料公開

はじめに

miyaji_26
miyaji_26
2022.05.16に更新

django3.2 で追加された select_for_update についての使用方法を調べたときの内容です。

まず、公式ドキュメントの url を共有します。

https://docs.djangoproject.com/en/3.2/ref/models/querysets/#select-for-update

公式ドキュメントでは select_for_update の利用例として以下のような実装が紹介されていました。

from django.db import transaction

entries = Entry.objects.select_for_update().filter(author=request.user)
with transaction.atomic():
    for entry in entries:
        ...

この実装を参考にして、自身の django プロジェクト内で、実際に使いつつ紹介します。

コードの実行には以下のコマンドを実行して、プロセスを分けた上で検証します。

python manage.py shell -i ipython