2011-10-30 2 views
3

Je construis ma première application Pyramid (en venant de Pylons) et je suis en train de comprendre comment gérer les exceptions avec pyramid_tm ... Par exemple, dans Pylônes je ferais quelque chose commeComment gérer les exceptions avec le gestionnaire de transactions Pyramid?

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

mais comment cela est-il censé être fait avec pyramid_tm?

Répondre

5

Utilisez Session.flush() au lieu de Session.commit().

Avec pyramid_tm, vous ne devriez jamais avoir besoin de faire commit() vous-même dans le code de traitement des demandes.

+0

Un grand merci :-) – Joril

+1

Cela a totalement résolu mon problème. Mais ce n'est toujours pas clair où je trouve ceci, par exemple, dans les documents de la pyramide. Il semble que les docs Pyramid devraient avoir ceci (ou au moins un pointeur) puisque l'échafaudage par défaut combine directement sqlalchemy avec zope.sqlalchemy - laissant un utilisateur débutant un peu incertain sur la façon de naviguer! –

Questions connexes