don't worry, it's a mistake you'll probably never do again :P
On Saturday, December 21, 2013 11:27:13 AM UTC+1, Ivo wrote:
>
> 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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.