I made the changes and switched to using {{=form}}, but It's still creating a new record. I just realized I didn't post a part of the view that might be causing the issue. I have multiple forms on a single page.
... {{=for row in rows:}} {{=form}} {{pass}} ... Could that be causing the issue? I went ahead and uploaded what I have to Python Anywhere to help illustrate what I'm trying to do. You can check it out here <https://drewhowell.pythonanywhere.com/TwoFiveTracker/default/workouts> (the layout is slightly broken because of the vertical radio buttons, but that will be fixed next). On Saturday, August 9, 2014 10:33:02 PM UTC-4, Massimo Di Pierro wrote: > > One problem is that you want to select after you process the form: > > def workouts(): > r = db.workouts(request.args(0)) > form = SQLFORM(db.workouts, r).process() > > if form.accepted: > response.flash = 'form accepted' > elif form.errors: > response.flash = 'form has errors' > > rows = db(db.workouts).select() > return locals() > > Also instead of using a custom form (unless you really need one), I > suggest you do {{=form}} in view and > > make the fields that you do not need in the form Field(..., > readable=False, writable=False) > > On Saturday, 9 August 2014 20:01:51 UTC-5, Drew Howell wrote: >> >> I'm new to Web2Py, so I am creating a (what I thought was a) simple app >> that tracks progress of a workout routine. I have a database (db.workouts) >> that has information such as Workout Name, Rating, Completed, etc. I have 2 >> fields(rating, completed) I would like to update via a form. I have tried a >> couple different methods, but can't seem to get anything to work correctly. >> The other fields are already entered in the table and should not be changed. >> >> "Rating" should be updated by a set of radio buttons and "Completed" >> should be set to 0 when the form is submitted (0=complete, 1=current, >> 2=locked). I have created the form, but have done something wrong because, >> when it is submitted, a new record is created rather than updating the >> existing one. >> >> *Here is my code:* >> >> *Model:* >> >> db.define_table('workouts', >> Field('stage'), >> Field('w', type="integer"), >> Field('workout'), >> Field('complete', type="integer"), >> Field('d', type="integer"), >> Field('rating', requires=IS_IN_SET([1, 2, 3, 4 ]), >> widget=SQLFORM.widgets.radio.widget), >> auth.signature >> ) >> >> *Controller:* >> >> def workouts(): >> rows = db(db.workouts).select() >> >> r = db.workouts(request.args(0)) >> form = SQLFORM(db.workouts, r) >> >> if form.process().accepted: >> response.flash = 'form accepted' >> elif form.errors: >> response.flash = 'form has errors' >> >> return locals() >> >> *View:* >> >> ... >> >> {{=form.custom.begin}} >> {{=form.custom.widget.rating}} >> {{=form.custom.submit}} >> {{=form.custom.end}} >> >> ... >> >> >> As I mentioned earlier, I am new and I may be going about this completely >> the wrong way. So any help would be greatly appreciated. I can provide more >> information if needed. Thanks. >> > -- 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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.