I got it resolved... ashamed to say it but I missed the = in the {{form.custom.end}} tag :(
On Friday, December 20, 2013 3:16:34 PM UTC+1, Ivo wrote: > > I have chosen to go the custom form way. > The only issue I have is that upon hitting submit, the button submits all > the forms on the page instead of just the one owning the button. I think > this also screws up my validation and it prevents records from being > inserted to the db. > > controller: > def show_form(): > > users_1 = > db(db.people.id.belongs(session.people.keys())).select(db.people.user_id) > users_2=[] > for user in users_1: > if user not in users_2: > users_2.append(user) > else: > pass > > forms=[] > for user in users_2: > usr= db(db.auth_user.id > ==user.user_id).select(db.auth_user.username,db.auth_user.id)[0] > usr1=usr.username > usr2=usr.id > key=str(usr2) > fields = [ > Field('key',default=key,writable=False), > Field('username',default=usr1,writable=False), > Field('address',default='Fill in your > address',type='text') > ] > > form=SQLFORM.factory(*fields, > table_name=key,hidden=dict(ss_id=key), > buttons=[ > BUTTON("Save Changes", > _class="btn btn-primary")]) > if form.process(formname=key, hideerror=True).accepted: > db.parking.insert(name=usr1, address=form.vars.address) > forms.append(form) > > return dict(forms=forms) > > > > view: > {{for form in forms:}} > {{=form.custom.begin}} > User: {{=form.custom.widget.username}} <br> > Address: {{=form.custom.widget.address}} <br> > {{form.custom.end}}<br><br> > {{pass}} > > > On Wednesday, December 18, 2013 9:45:14 PM UTC+1, Niphlod wrote: >> >> form.process adds little bits to the form to be able to actually process >> the posted data. >> >> in pseudo-code you need to >> >> list_of_forms = [] >> for something in list_of_values: >> key = something_unique >> form = SQLFORM(....) >> if form.process(formname=something_unique).accepted: >> .....code dealing with the posted values, such as form.vars, >> etc >> elif form.errors: >> .....code dealing with form errors >> >> list_of_forms.append(form) >> ...... >> return dict(list_of_forms=list_of_forms, ....) >> >> In the view, you can then: >> >> {{for single_form in list_of_forms:}} >> <div class="row"> >> {{=single_form}} #or {{single_form.custom.etc etc etc}} >> </div> >> <hr /> >> {{pass}} >> > -- 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/groups/opt_out.