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.