DjangoのDBトランザクション管理
setting.pyに'django.middleware.transaction.TransactionMiddleware'を追加。
トランザクションは他のミドルウェアにも影響を与えるので、基本的に後ろに追加する。
setting.py
MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.transaction.TransactionMiddleware', )
view.py内で、データベースの更新、追加をするとき。
デコレータを使って、トランザクションをコミットする。
views.py
from django.db import transaction from hogeapp.models import Members """ *** """ @transaction.autocommit def transview(request): m = Members(id=0) m.save() return HttpResponse('Comitted')
Djangoの管理画面使いやすいな〜。phpmyadmin要らず。