here is the database definition: db.define_table('contest', Field('name', length=128 ), Field('contest_host', length=128,), Field('duration', 'time' ), Field('time_passed','time', default = 0), Field('rank_frozen','time', default = 0), Field('running',length= 10, readable=False, default = "no"), Field('lang'))
db.contest.name.requires = [IS_NOT_IN_DB(db,db.contest.name), IS_NOT_EMPTY()] db.contest.contest_host.requires = [IS_NOT_EMPTY()] db.contest.duration.requires = [IS_NOT_EMPTY()] db.contest.lang.requires=IS_IN_SET(['C', 'C++', 'JAVA', 'Python'], multiple=True) db.contest.lang.widget = hmultiselect_widget then here is my controller which will show the SQLFORM Grid: @auth.requires_permission('manage') def configure(): grid = SQLFORM.grid(db.contest,fields = [db.contest.id, db.contest.name, db.contest.contest_host, db.contest.duration, db.contest.time_passed , db.contest.rank_frozen],create=False, links = [contest_buttons] , details=False ) return dict(grid = grid) Then here is my code which will flip the value of db.contest.running def flip_contest_status(): id = request.post_vars.id row = db(db.contest.id == id).select(db.contest.running, db.contest.name ).first() value = "" if row.running == 'no': value = 'yes' #session.flash = row.running elif row.running == 'yes': value = 'no' #session.flash = row.running else: abd = "sd" db(db.contest.id == id).update(running = value) session.flash = row.running return locals() Here is my db.contest table: contest.id<http://localhost:8000/SAI_BETA/appadmin/select/db?orderby=contest.id> contest.name<http://localhost:8000/SAI_BETA/appadmin/select/db?orderby=contest.name> contest.contest_host<http://localhost:8000/SAI_BETA/appadmin/select/db?orderby=contest.contest_host> contest.duration<http://localhost:8000/SAI_BETA/appadmin/select/db?orderby=contest.duration> contest.time_passed<http://localhost:8000/SAI_BETA/appadmin/select/db?orderby=contest.time_passed> contest.rank_frozen<http://localhost:8000/SAI_BETA/appadmin/select/db?orderby=contest.rank_frozen> contest.running<http://localhost:8000/SAI_BETA/appadmin/select/db?orderby=contest.running> contest.lang<http://localhost:8000/SAI_BETA/appadmin/select/db?orderby=contest.lang> 13 <http://localhost:8000/SAI_BETA/appadmin/update/db/contest/13>Testme 07:33:5306:33:5406:33:55no|C++|14<http://localhost:8000/SAI_BETA/appadmin/update/db/contest/14> faiyaz26me06:34:2307:34:2206:34:25no|C| I used session.flash to check what kind of value is fetching, and it is showing *yes* for contest.id = 13 and 14 If i update the value of db.contest.running for db.contest.id =13 to yes from no, it shows *no* then what to do then ? You can download the whole w2p file from here: https://dl.dropboxusercontent.com/u/34972503/web2py.app.SAI_BETA.w2p username: administrator pass: admin1234 then go to contest/configure to check !! use start , stop button to update the status. On Tue, Jul 2, 2013 at 8:40 AM, Anthony <abasta...@gmail.com> wrote: > Can you show the code you are now using and describe the workflow of how > the record gets updated and how you are then attempting to view the updated > record? > > Anthony > > On Monday, July 1, 2013 8:37:32 PM UTC-4, Ahmad Faiyaz wrote: > >> weird things happening, when i check the db table with appadmin, it shows >> for contest.running = yes [ updated the value with sqlform.grid ] , but >> when i fetch the row with DAL on app, it shows contest.running = no [ which >> is the default ] >> >> why ? >> >> On Tue, Jul 2, 2013 at 6:18 AM, Ahmad Faiyaz <faiy...@gmail.com> wrote: >> >>> thanks, but it sometimes work, sometimes doesn't !! what can be the >>> problem ! >>> >>> On Tue, Jul 2, 2013 at 5:34 AM, Alex <mrau...@gmail.com> wrote: >>> >>>> from the documentation: >>>> update_record should not be confused with >>>> >>> row.update(name='Curt') >>>> because for a single row, the method update updates the row object but >>>> not the database record, as in the case of update_record >>>> >>>> so you should use update_record instead. or even better: >>>> db(db.contest.id == id ).update(running = value) >>>> >>>> which only results in one sql statement. >>>> >>>> Alex >>>> >>>> Am Dienstag, 2. Juli 2013 00:23:16 UTC+2 schrieb Ahmad Faiyaz: >>>> >>>>> Hello, >>>>> i am trying to update a row on a db table, but it is not updating, >>>>> what is the problem ? >>>>> >>>>> my db table definition: >>>>> db.define_table('contest', Field('name', length=128 ), >>>>> Field('contest_host', length=128,), Field('duration', 'time' ), >>>>> Field('time_passed','time', default = 0), Field('rank_frozen','time', >>>>> default = 0), Field('running',length= 10, readable=False, default = "no"), >>>>> Field('lang')) >>>>> >>>>> My update function: >>>>> >>>>> def flip_contest_status(): >>>>> id = request.post_vars.id >>>>> row = db(db.contest.id == id ).select().first() >>>>> value = "no" >>>>> con = row.running >>>>> if con is "no": >>>>> value = "yes" >>>>> db(db.contest.id == id ).select().first().update(**running = >>>>> value) >>>>> session.flash = row.name + " mode changed to "+ value >>>>> return locals() >>>>> >>>>> it doesn't update my db row !! >>>>> >>>>> What to do ? >>>>> >>>>> -- >>>> >>>> --- >>>> You received this message because you are subscribed to a topic in the >>>> Google Groups "web2py-users" group. >>>> To unsubscribe from this topic, visit https://groups.google.com/d/** >>>> topic/web2py/1YuETESUji8/**unsubscribe<https://groups.google.com/d/topic/web2py/1YuETESUji8/unsubscribe> >>>> . >>>> To unsubscribe from this group and all its topics, send an email to >>>> web2py+un...@**googlegroups.com. >>>> >>>> For more options, visit >>>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out> >>>> . >>>> >>>> >>>> >>> >>> >>> >>> -- >>> >>> Regards, >>> Ahmad Faiyaz >>> >> >> >> >> -- >> >> Regards, >> Ahmad Faiyaz >> > -- > > --- > You received this message because you are subscribed to a topic in the > Google Groups "web2py-users" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/web2py/1YuETESUji8/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > web2py+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- Regards, Ahmad Faiyaz -- --- 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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.