On May 24, 8:22 am, Tex <[email protected]> wrote: > Hi, > > sorry for my poor english... > > I'm wondering how can I put controller code filters like rails > (before_filter / after_filter / around_filter). > > Searching into user group posts I see many responses on activerecord > callbacks (before_save / after_save) wrongly referred to question on > before/after/around filter (controller filter). > > Now I know that in web2py I can put code into model /db.py) and that > code is execute before globals and before controller code, my > questions are: > > 1. in rails I write before_filter only for given controllers and given > actions, seems that in web2py if I write the code in db.py it is > executed for all controllers and actions, is there a way to limit that > code execution to given controllers and actions ? (I think that put > too much code into db.py may slow the excution of requests, it'isnt ?) > > 2. how can I write code execution that emulates after_filter or > around_filter ala Rails ? (example: I want to track remote ip for all > my controller/actions into database...),
I think this may be more a python question than a web2py question: With python, you want to read up on decorators. For example: @auth.requires_login() def mycontroller: ..... can be either before, around, or after (although you can certainly do before / after in other, simpler ways). For example: @before_decorator() @around_decorator() def myfunction: .... For background, you could start with: http://docs.python.org/reference/compound_stmts.html#function http://www.artima.com/weblogs/viewpost.jsp?thread=240808 http://www.artima.com/weblogs/viewpost.jsp?thread=240845 > > Many thanks in advance. Regards, - Yarko > > Tex

