2011-10-30 6 views
3

私は私の最初のピラミッドアプリ(パイロンから来る)を構築していると私はPylonsの中で、私はPyramidトランザクションマネージャで例外を処理する方法は?

try: 
    Session.add(object) 
    Session.commit() 
except IntegrityError: 
    Session.rollback() 
    flash("Object already present") 

ような何かをするだろう、例えば... pyramid_tmで例外を処理する方法を理解しようとしているが、これはpyramid_tmでどうやってやらなければなりませんか?

答えて

5

Session.commit()の代わりにSession.flush()を使用してください。

pyramid_tmでは、リクエスト処理コードでcommit()を自分で行う必要はありません。

+0

多くのありがとう:-) – Joril

+1

これは私の問題を完全に解決しました。しかし、Pyramidのドキュメントなど、どこでこれがわかるのかはまだ分かりません。デフォルトのscaffoldはzope.sqlalchemyとまっすぐなsqlalchemyを結合しているので、Pyramidのドキュメントにはこのポインタ(または少なくともポインタ)が必要なようです。初心者にはナビゲート方法が少し分かりません。 –

関連する問題