Is session[id] a Storage object? If so, if you do session[id].r and r does 
not exist, the Storage object will return None. If you try to do 
session[id].r['Nav'], it will attempt to subscript None with 'Nav', which 
won't work.

Anthony

On Tuesday, August 14, 2012 12:36:22 PM UTC-4, Annet wrote:
>
> I have the following lines of code:
>
> aboutnav=db((db.NodeNav.nodeID==id)&(db.NodeNav.navID==db.Nav.id
> )&(db.Nav.navbarID==ABOUTNAVBARID)).select(db.Nav.ALL,db.NodeNav.ALL,orderby=db.Nav.position).as_list()
> if aboutnav:
>     session[id].aboutnav=True
>     for r in aboutnav:
>         if r['Nav']['id']==ABOUTNAVID and r['NodeNav']['frontend']:
>             session[id].site_menu.append([T(r['Nav']['name']),False,'#'])
>         elif r['NodeNav']['frontend']:
>             session[id].about_dropdown.append([T(r['Nav']['name']),False, 
> URL(r['Nav']['frontendcontroller'],r['Nav']['function'],args=id)])
>             session[id].r['Nav']['function']=True
>
> The last line results in the following error:
>
> Traceback (most recent call last):
>   File "/Library/Python/2.5/site-packages/web2py/gluon/restricted.py", line 
> 205, in restricted
>     exec ccode in environment
>   File 
> "/Library/Python/2.5/site-packages/web2py/applications/bootstrap/controllers/site.py"
>  <http://127.0.0.1:8000/admin/default/edit/bootstrap/controllers/site.py>, 
> line 194, in <module>
>   File "/Library/Python/2.5/site-packages/web2py/gluon/globals.py", line 173, 
> in <lambda>
>     self._caller = lambda f: f()
>   File 
> "/Library/Python/2.5/site-packages/web2py/applications/bootstrap/controllers/site.py"
>  <http://127.0.0.1:8000/admin/default/edit/bootstrap/controllers/site.py>, 
> line 83, in index
>     session[id].r['Nav']['function']=True
> TypeError: 'NoneType' object is unsubscriptable
>
>
> Why can I do session[id].plural=True and can't I do 
> session[id].r['Nav']['function']=True
>
>
> Annet
>
>
>

-- 



Reply via email to