Strange. Ok. I changed it again. Can you please check it. I am still trying to avoid the double loop for every virtual table.
On Friday, 19 July 2013 16:54:05 UTC-5, peckto wrote: > > Regarding your changes: > + all_fields = filter(lambda nv: nv[1] in fields and > + isinstance(nv[1],(FieldVirtual, > FieldMethod)), > + table.iteritems()) > It doesn't work. It ends up in returning all virtual fields, even when > they are not requested. > It's because of the "var in list" statement: > nv[1] in fields > always returns True. I don't know why. > > Another solution would be to use the id() function: > id(nv[1]) in [id(f_) for f_ in fields] > but you have overwritten this function > 2091: id = value > > So I came finally to the complicated looking statement: > nv[0] in [f_.name for f_ in fields] and nv[1].tablename == tablename > > Maybe you can tell me why the "var in list" statement fails > or we use one of the other solutions (while renaming the id value). > -- --- 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/groups/opt_out.