> I have table a that is referenced by table b, so there is a_id FK field in > table b. But now I want table c to reference table b but to discriminate > record I need the representation of a id in the dropbox of c form because b > table are meaning less with a id represent. > > It occurs that IS_IN_DB does not let you access the value of the > referenced table, I mean I can't do something like this : > > IS_IN_DB(db, 'b.id', represent_dict[a_id] + b.other_field) >
The third argument to IS_IN_DB can be a callable that takes the row object from the select, so it can generate whatever representation you want. I'm not sure what you mean by represent_dict[a_id], but perhaps something like: IS_IN_DB(db, 'b.id', lambda r: db.table_a(r.a_id).some_field + r.other_field ) If the representation is more complex, you can define a separate function rather than using a lambda. Also, note that IS_IN_SET can take a dictionary or list of tuples -- see the book section on it. Anthony -- --- 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/groups/opt_out.

