You're probably better off with LOAD, but if you don't want to use Ajax, 
maybe exec_environment would work: 
http://web2py.com/book/default/chapter/04#Execution-Environment
 
Does options() have to be a controller action (i.e., does it ever need to be 
called via a URL)? If not, you could also simply put it in a module and 
import it wherever you need it. In that case, I suppose you'd have to 
explicitly pass db to it as an argument.
 
Anthony

On Saturday, March 19, 2011 3:32:08 PM UTC-4, LightOfMooN wrote:

> Yes, I know it. I very like bluebream because of pull (it's not for 
> propagation :) 
> And it's too hard for me to develop without it, but I try. 
>
> So, maybe is there a way to prepare some variables in some function 
> and then use it by calling prepare-function from needed function? 
>
> Something like: 
>
> mycontroller/ 
> def options(): 
>     a = ... 
>     b = db(...).select() 
>     return dict(a=a, b=b) 
>
> othercontroller/ 
> def index(): 
>     options = mycontroller/options() 
>     local_one = ... 
>     return dict(local_one=local_one, options=options) 
>
> index.html: 
>     {{=local_one}} 
>     {{if options['a']==True:}} 
>         helloworld 
>     {{pass}} 
>
> Is there a way to do something like this? ( >>>  options = 
> mycontroller/options()  <<< ) 
>
> On 20 мар, 00:20, Massimo Di Pierro <massimo....@gmail.com> 
> wrote: 
> > There are two types of frameworks: push and pull. 
> > 
> > In push once controller pushes variables to one view. 
> > 
> > In pull one view pulls variables from multiple controllers. 
> > 
> > Web2py, Django, TG, Pylons, Pyramid, Flask, are push frameworks. You 
> > are trying to use a push framework as a pull one and that is not a 
> > good idea. 
> > 
> > You can ask the browser to pull variables. You can do is via Ajax or 
> > using the LOAD helper. 
> > 
> > massimo 
> > 
> > On Mar 19, 2:06 pm, LightOfMooN <vlads...@yandex.ru> wrote: 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > > How can I get variables in view from other controller? 
> > 
> > > For example: 
> > > mycontroller/ 
> > > def options(): 
> > >     return dict(a='hello', b='world') 
> > 
> > > and in some view I need something like this: 
> > 
> > > {{ options = mycontroller/options() }} 
> > > {{=a}} {{=b}}

Reply via email to