2007年10月05日

Python | Django カスタムSQLとトランザクション

モデル API リファレンス : Django 0.96 オンラインドキュメント和訳

カスタムSQLの実行

connection や cursor は標準の Python DB-API を使っています.

PostgreSQL + psycopg2 + Djangoの組み合わせで、カスタムSQLで更新処理を行ってもオートコミットされていなかったので、手動でコミットしようとDBAPIで定義されている connection.commit() を実行してみたが、django.db.connectionにcommitなんて属性はないッスとエラーが出た。

カスタムSQLを使っても、トランザクション管理はDjangoで統一して行われるということだね。確かにその方がベターだ。
データベーストランザクションの管理
とりあえずview関数にautocommitデコレータを付けて解決。

一般的なWebアプリの場合はTransactionMiddlewareを入れておけば良さそうだ。

Posted by otsuka : 21:00 | Comment (0) | Trackback (0)
Comment









名前、アドレスを登録しますか?