Why not? I thought (as in functional programming) that the update statement was specifying an expression to be called on every resulting row, and so I wrote an expression that defines a new list given an old list -- just as you might define a new integer value on the basis of an old integer value.
Luca On Friday, September 21, 2012 7:50:09 PM UTC-7, Massimo Di Pierro wrote: > > There is no way to append an element to every list. > > On Friday, 21 September 2012 19:45:12 UTC-5, Luca wrote: >> >> 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. >> >> --