for f in table:
    if any(f is other for other in fields_list):
        print f


This also works. Your solution is not bad at all either. 

The problem here is that in the DAL a Field is an Expression, and 
expressions have "==" overloaded to return a Query, a Query is not False. 
So the in operator calls the list.__contains__ which uses == to check if 
any of the items of the list is yours, and any item it compares with 
returns a value which is not False, so your initial solution will always 
print all the Fields in the Table.

When you use overloaded operators such as we do in the DAL, you get 
convenience and readability but you must then pay attention to this sort of 
problems.

-- 
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