Because if the hidden id field is in your request.post_vars, the record's new data was submitted.
On Fri, Aug 30, 2013 at 10:43 AM, Denis Sh <shapovalovde...@gmail.com> wrote: > Hm, I thought that form = SQLFORM(db.person, record) , i.e. parameter > 'record' indicates that, so why duplicate that in view? > > > On Fri, Aug 30, 2013 at 3:43 PM, Vinicius Assef <vinicius...@gmail.com> > wrote: >> >> Because SQLFORM uses this field to know you're editing not inserting a >> record. >> >> On Fri, Aug 30, 2013 at 5:27 AM, <shapovalovde...@gmail.com> wrote: >> > Thanks, I indeed missed that hidden field with record id. From the book: >> > "Edit forms also contain a hidden INPUT field with name="id" which is >> > used >> > to identify the record. " >> > >> > Though I don't really understand why we need that field as record id is >> > kept >> > server-side anyway. >> > >> > >> > On Thursday, August 29, 2013 4:32:52 PM UTC+3, viniciusban wrote: >> >> >> >> It would be nice if you show your view. >> >> >> >> Probably you're missing a hidden field in second form with the record >> >> id. >> >> >> >> On Thu, Aug 29, 2013 at 10:12 AM, <shapova...@gmail.com> wrote: >> >> > Hi! >> >> > >> >> > I have an issue with UPDATE form. I'm trying to implement something >> >> > like >> >> > enrollment form that has man field beyond standard name, email, etc. >> >> > For >> >> > the >> >> > sake of usability I've decided to split it to two steps (i.e. >> >> > controllers - >> >> > pages): first asks user for name and email, and after user submits >> >> > it, >> >> > he/she gets redirected to the second controller with UPDATE form for >> >> > the >> >> > same record, inserted with previous form. >> >> > >> >> > Btw, at first I thought of having a one page form and presenting it >> >> > in >> >> > parts >> >> > with help of JS, but I've decided to go with back end, to have even >> >> > partially submitted data in database. >> >> > >> >> > def firstform(): >> >> > form = SQLFORM(db.person, fields = ['email','name']) >> >> > if form.process(session=None, formname='begin_form').accepted: >> >> > session.person_id = form.vars.id >> >> > session.flash = 'form accepted' >> >> > redirect(URL('endjoin')) >> >> > elif form.errors: >> >> > response.flash = 'form has errors' >> >> > else: >> >> > response.flash = 'please fill the form' >> >> > return dict() >> >> > >> >> > # and >> >> > def secondform(): >> >> > record = db.person(session.person_id) or redirect(URL('index')) >> >> > form = SQLFORM(db.person, record, fields = >> >> > ['address','phone','many_more_fields']) >> >> > if form.process(session=None, formname='end_form').accepted: >> >> > response.flash = 'form accepted' >> >> > elif form.errors: >> >> > response.flash = 'form has errors' >> >> > else: >> >> > response.flash = 'please fill the form' >> >> > return dict() >> >> > >> >> > The problems is that second action 'firstform' makes insert, instead >> >> > of >> >> > update to the record inserted by first action 'secondform'. Though >> >> > 'record' >> >> > contains reference to last add row, which should be >> >> > updated(completed). >> >> > I'm >> >> > not passing form to the view, I use custom html to present my forms, >> >> > because >> >> > I didn't find a way to make helpers specify input type='email', >> >> > placeholder, >> >> > size and other HTML5 form parts attributes. >> >> > >> >> > -- >> >> > >> >> > --- >> >> > 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+un...@googlegroups.com. >> >> > For more options, visit https://groups.google.com/groups/opt_out. >> > >> > -- >> > >> > --- >> > 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. >> >> -- >> >> --- >> 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/ns0C3Upvd_c/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. > > > -- > > --- > 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. -- --- 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.