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.

Reply via email to