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.

Reply via email to