2011-10-30 5 views
3

내가 처음으로 피라미드 응용 프로그램 (철탑에서 오는)를 짓고 있어요 내가 철탑에서 나는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

이것은 완전히 내 문제를 해결했습니다. 그러나 피라미드 문서에서 내가 어디에서이를 발견했는지는 아직 명확하지 않습니다. 디폴트 스카 폴드가 zope.sqlalchemy와 똑같은 sqlalchemy를 결합했기 때문에 피라미드 워드 프로세서가이 포인터를 가져야하는 것처럼 보입니다. 처음 사용자는 탐색 방법을 조금 알 수 없습니다! –

관련 문제