2011-10-30 36 views
3

我建立我的第一個金字塔的應用程序(從塔來),我試圖找出如何處理與pyramid_tm例外...例如,在主塔我會做類似如何處理金字塔事務管理器的異常?

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

但這應該如何與pyramid_tm完成?

回答

5

使用Session.flush()而不是Session.commit()

通過pyramid_tm,您不應該(需要)自己在請求處理代碼中執行commit()

+0

非常感謝:-) – Joril

+1

這完全解決了我的問題。但是,我仍然不清楚在哪裏找到這個,例如在金字塔文檔中。似乎金字塔文檔應該有這個(或至少一個指針),因爲默認的腳手架結合了直接sqlalchemy和zope.sqlalchemy - 讓一個初級用戶不確定如何導航! –