I was searching for a way to detect records change in a complexe sqlform.factory used to populate multiples tables and multiples rows in one of them... Until now, I have been able to manage the insertion and update with the help of update_or_insert()... For instance if some of the input change state (dropdown select displays in a table) there is no problem if there is still a selected value, but if the one previously selected value are now unselected there is no way update_or_insert() would be able to delete the proper row as form.vars.select1_field_name = None and record can't be retrieve...
The snippet propose by Massimo would have been exactly what I am searching for, but I am not sure record_id can be pass in context of .factory() as it make no sens in my use case... I need to know what was the value of the update form before user submit it... Is this this information kept by form and available some how with request or other mean? Richard On Sun, Dec 9, 2012 at 1:41 PM, Massimo Di Pierro < [email protected]> wrote: > Something like this? > > form=SQLFORM(db.table,record_id) > if form.process(dbio=False).accepted: > if any(v!=form.record[k] for k,v in form.vars.iteritems()): > record_has_changed > else: > record_has_NOT_changed > > > On Sunday, 9 December 2012 10:51:14 UTC-6, Joe Barnhart wrote: >> >> >> I've been investigating the use of the DAL feature >> "detect_record_change=True". Apparently it was conceived as a way of >> detecting when the record in the database has changed since the form was >> originally built and populated. My need is for a way to detect when the >> USER has changed fields in the record between the time it was built and >> some other event, such as when the user tries to navigate away from the >> form without pressing the "submit" button. >> >> It seems to me the idea is quite similar -- I want to serialize the data >> in the form and then compare that hash to the same form later. Only >> instead of comparing the data in the database to the hash I want to compare >> the form's version of the data again. Has anyone already done this? Is >> there a better way to detect when a form has actually been changed instead >> of just viewed? >> >> -- Joe B. >> > -- > > > > -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.

