You are right. Both work. I don't know what happenend, but now it works to me. So it was my fault messing the code.
I'm very sorry. El jueves, 3 de abril de 2014 21:55:59 UTC+2, Anthony escribió: > > Hmm, I have tried both methods (assigning a global variable and adding an > attribute to "current"), and in both cases it works fine (i.e., with the > callback defined and set in a model file and with the update happening in a > controller function). Perhaps you could attach a minimal app that > reproduces your problem. > > Anthony > > On Thursday, April 3, 2014 11:53:47 AM UTC-4, mcamel wrote: > >> Sorry, i wanted to say 'model' not 'module'. >> >> I've tried to pass data from a callback in a model to "its" function in a >> controller with 'current', but was not able: >> >> def my_before_callback(): >> from gluon import current >> current._mydata = 'hello' >> >> In a controller: >> >> def my_function(): >> db.....update(....) >> from gluon import current >> response.flash = current._mydata >> >> but got error: >> >> <type 'exceptions.AttributeError'> 'thread._local' object has no >> attribute '_mydata' >> >> >> I'm doing something wrong or it's just that it applies only for modules >> and not for models and/or controllers?. >> >> I'm sure the callback is called because all works if i replace 'current' >> with 'request.vars'. >> >> >> Thanks for your time. >> >> >> El jueves, 3 de abril de 2014 17:10:57 UTC+2, Anthony escribió: >>> >>> On Thursday, April 3, 2014 10:58:32 AM UTC-4, mcamel wrote: >>>> >>>> >>>> Be careful about storing something in request.vars, as some other code >>>>>>> may depend on request.vars and end up failing due to it being changed. >>>>>>> >>>>>> >>>>>> Any alternative you can suggest?. Session object seems error prone >>>>>> for this because of concurrency... >>>>>> >>>>> >>>>> You could just declare a global variable: >>>>> >>>> >>>> That works fine to pass values from 'before' callback to 'after' >>>> callback, but fails if you want to pass values from 'after' callback (in a >>>> module) to the function that triggered it (in a controller). >>>> >>> >>> That's a different story. In that case, you could add something to >>> "current". >>> >>> Anthony >>> >> -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.

