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.
>>
>>
--