Please check the value of does_user_have_admin_roles -- it must be True 
when you think it isn't.

Anyway, an alternative is:

{{if 'admin_roles' in globals():}}

Even better, just initialize admin_roles to an empty list and do:

{{for r in admin_roles:}}

The loop will not be executed if the list is empty.

A couple other tips:

   1. In Python, prefer if some_boolean over if some_boolean == True.
   2. When naming a boolean, don't make it sound like a question (e.g., 
   prefer has_admin_roles over does_user_have_admin_roles). This goes with #1 
(if 
   has_admin_roles is more appropriate grammatically than if 
   does_user_have_admin_roles).
   
Anthony

On Thursday, February 4, 2016 at 7:46:19 PM UTC-5, Alex Glaros wrote:
>
> I'm trying to avoid an extra DB hit by first checking for records in 
> controller.  I set a "yes" or "no" type flag
>
> But the conditional in the view doesn't care if flag is set to no, it 
> still raises error stating that the set within the conditional as undefined.
>
> Is the only way to get around this is put the isempty check in the view 
> instead of controller?
>
> {{if does_user_have_admin_roles == True:}}
>            {{for r in admin_roles:}} 
>
> <type 'exceptions.NameError'> name 'admin_roles' is not defined
>
> also tried: {{if admin_roles:}}
>
> thanks,
>
> Alex Glaros
>
>
>

-- 
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to