That's it then. You cannot have multiple forms on the same type on one page unless they refer to different tables. There are other ways but it really depends on what you are trying to do. Can you explain in words what is the page supposed to do.
On Sunday, 10 August 2014 11:11:05 UTC-5, Drew Howell wrote: > > 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.