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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.