> > I've tried passing a function as argument to @error_handler but it > > doesn't seem to work. Is it possible at all? Or the argument has to be > > a method? This is what I tried: > > > > def error( dummy, tg_errors=None ): > > return dict( errors=tg_errors, success=False, msg='There was an error' > ) > > > > class controller( turbogears.controllers.Controller ): > > @expose( ) > > @error_handler( error ) > > @validate( validators=dict( value=Int( ) ) ) > > def hello( self, value=2 ): > > return dict( value=value ) > > > > The first argument, 'dummy', of error( ) serves as the placeholder for > > the instance that is normally passed as first argument to a method. > > The reason I go this way is that I'd like to have the same > > error_handler for all methods of several controllers and want to > > define this error_handler only once. If I define it as a method on one > > of the controllers I can't really pass it to @error_handler decorating > > another method in another controller, can I? > > the correct way will be to define the generic error handler in the > root controller. in TG2 this will be a lot easier as you can edit your > rootcontroller in your /lib. > in tg1 it's a bit more complicated you will do something like this. > remember they are objects. > > class myRootController(RootController): > @expose() > def errorHandler(......) > ...... > > class Controller1(myRootController): > etc. > > class Controller2(myRootController): > etc. > > > that way you have one definition of the error handler and it's > inherited to all of them.
Thanks Jorge, this is a good idea too. Cheers, Daniel --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "TurboGears" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/turbogears?hl=en -~----------~----~----~----~------~----~------~--~---

