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

-- 



Reply via email to