You are welcome. Just a way of giving back so much help received from this
group.
Best regards.
El lunes, 9 de mayo de 2016, 1:48:34 (UTC+2), Michael Beller escribió:
>
> Thanks Carlos! I just came across this and your post helped me.
>
> On Friday, March 11, 2016 at 5:09:50 AM UTC-8, Carlos Kitu wrote:
>>
>> Hi guys, I don't show up here too often because all the issues I find use
>> to be solved here. Good job.
>>
>> Today I was going nuts with one issue, and I would like to share my
>> findings for other developer's sake.
>>
>> I was generating a form with SQLFORM.factory:
>> form= SQLFORM.factory(...)
>>
>> In the controller, I was creating a custom form for the view, something
>> like:
>> custom_form= CAT(form.custom.begin,
>> ... custom fields...
>> form.custom.submit,
>> form.custom.end)
>>
>> The custom_form displayed fine in the browser, but when I submitted the
>> form, it wasn't accepted at:
>> if form.process().accepted:
>> response.flash='Accepted'
>>
>> Digging in the SQLFORM and FORM classes I learnt a lot about them, and
>> finally I realized the origin of the problem:
>>
>> - form.process() requires a hidden field (*formkey*) with valid data
>> for security reasons. That field uses to be in form.custom.end
>> - that field was missing in my custom_form
>> - The reason was that when you create a form with SQLFORM.factory,
>> initially, there is no hidden *formkey* field in form.custom.end,
>> just a humble </form>
>> - That *formkey* hidden field gets inserted in form.custom.end when
>> you call form.process()
>> - That means that form.process() must be called before generating the
>> view, in order to have a formkey in form.custom.end. My failure was to
>> try
>> to create custom_form = CAT() before calling form.process()
>> - Should I have use {{=form.custom.end}} straight in the view, I
>> would have had no problem.
>> - As I had quite a complex form, I preferred to have it generated in
>> the controller, and I just had to put the if form.process().accepted:
>> before programatically generating
>> the custom_form and everything worked fine
>>
>> Thanks a lot guys for this helpful group.
>> Best regards.
>>
>>
--
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/d/optout.