Suppose you have: db.define_table('membership', 'user_id': db.auth_user, 'things': 'list: reference thing' ) db.define_table('thing', ...)
The following does not work: db(db.membership.user_id = 2).update(things=list_add(db.membership.things, 3)) where def list_add(l, e): if e in l: return l else: return l + [e] The problem seems to be that the db.membership.things field that is passed to list_add is, somehow, NOT a list. --