just to conclude this: I inserted the controller code in the view instead
which solved the problem:
<h4><i class="icon-user"></i> me (from sidebar.html):</h4>
{{query=db.about.id>0}}
{{ab=db(query).select()}}
{{dict(ab=ab)}}
{{for pre in ab:}}
{{for pr in pre.presentation.split():}}
<dl class="dl">
<dd><i class="icon-check"></i> {{=pr}}</dd>
</dl>
{{pass}}
<h5><i class="icon-arrow-right"></i> Contact: {{=pre.contact}}</h5>
{{pass}}
but it would have been better to return the ab dict from the sidebar.py
controller instead.
On Saturday, December 22, 2012 11:24:11 PM UTC, jonas wrote:
>
> ok. thanks, that clarified the a few things.
>
> On Saturday, December 22, 2012 10:48:35 PM UTC, Anthony wrote:
>>
>> On Saturday, December 22, 2012 5:00:52 PM UTC-5, jonas wrote:
>>
>>> Ok, I have a {{include}} statement in the beginning of the layout.html
>>> file that cals index.html and the corresponding index.py controller. And
>>> that one returns variables. So there is no way to call sidebar.py with tve
>>> corresponding view to get the variables?
>>>
>>
>> That's not quite how it works. Views do not call controllers. Rather,
>> when a URL is requested, web2py routes the request to a particular
>> controller. Once the controller returns, then the view is executed. So,
>> your browser calls /myapp/default/index. web2py receives that request, and
>> after executing your model files, it runs the index() function in the
>> default.py controller. After the index() function returns, it then executes
>> the /views/default/index.html view (with the keys/values of the dict
>> returned by the index() function being available as variables within the
>> view). Your index.html view then extends the layout.html view, which means
>> its code gets inserted in place of the {{include}} within layout.html. So,
>> the {{include}} in layout.html is not calling index.html, and index.html is
>> not calling the index() function -- the order is the exact opposite -- the
>> index() function is called first, then the index.html view is executed, and
>> finally the index.html view extends layout.html.
>>
>> Anthony
>>
>
--