Can you please open an issue about the compute on update problem? I will try reproduce and fix it.
On Saturday, 26 May 2012 07:11:28 UTC-5, peter wrote: > > So > > def update_images(): > rows=db(db.image).select() > for row in rows: > row.update(file=row.file) > db.commit() > > does work. I wrote (title=row.title) as I was a little loath to write > (file=row.file) as I was not sure if this was okay with 'upload' fields. > Clearly it is. > > Thinking about it more, a cleaner way of doing it is: > > def update_images(): > rows=db(db.image).select() > for row in rows: > row.update(thumb=THUMB(row['file']) > db.commit() > > and bypass the compute altogether. > > HOWEVER I still have the strange situation that the compute gets executed > when one creates a new record, but does not get executed when one edits a > record, even when one changes the image which is stored in 'file'. the > editing is done by clicking the 'edit' link in SQLFORM.grid. > > Peter > > > > > > On Friday, May 25, 2012 6:50:33 PM UTC+1, peter wrote: >> >> I am using web2py 1.99.7 >> >> I have a compute as >> >> db.image.thumb.compute=lambda r:THUMB(r['file']) >> >> >> I update the whole database >> >> def update_images(): >> rows=db(db.image).select() >> for row in rows: >> row.update(title=row.title) >> db.commit() >> >> >> Yet, the computes have not occurred. >> >> Similarly if I edit a record and submit, no compute. Yet if I add a >> record, the compute does take place. >> >> Anyone any ideas why? >> >> Thanks >> Peter >> >