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要らず。