OK, i figure it out by adding a hidden function to generate the form.

On Wednesday, June 22, 2016 at 1:23:56 PM UTC-4, Jing Lu wrote:
>
> Hi Web2py developers,
>
> I have a trivial question, but I don't know how to solve. My index.html 
> has a form with some default parameters. I get the input from users and 
> save it to sessions and then redirect them to the next page with the same 
> form having the input data from users. However, I don't know how to update 
> the form. I tried the update() function, but doesn't seem to work. Here is 
> my code:
>
> In default.py
>
> def index():
>     form=FORM(DIV(LABEL(T("Parent Drug:"))),
>               DIV(INPUT(_name="_drugsmile", _value="CCCCP")),
>               DIV(LABEL(T("MS/MS Peaks:"))),
>               DIV(TEXTAREA("1231 12431", _name="_peaks", _cols="20", 
> _rows="5")),
>               DIV(LABEL(T("Ion Mode:"))),
>               DIV(DIV(INPUT(_type="radio", _name="_ionmode", 
> _value="Positive", _checked="checked"), 
> SPAN("Positive")),DIV(INPUT(_type="radio", _name="_ionmode", 
> _value="Negative"), SPAN("Negative"))),
>               DIV(LABEL(T("Mass Tolerance (Da):"))),
>               DIV(INPUT(_name="_masstol", _value="0.04")),
>               DIV(LABEL(T("Mass Error (ppm):"))),
>               DIV(INPUT(_name="_masserror", _value="40")),
>               DIV(INPUT(_type='submit')))
>     if form.process().accepted:
>         session.flash = 'form accepted'
>         form.accepts(form.vars, session=session)
>         session.drug_info = form.vars
>         session.form = form.update() # form.update(form.vars) doesn't work, I 
> am not sure why....
>
>         redirect(URL('infodisplay'))
>     elif form.errors:
>         response.flash = 'form has errors'
>     else:
>         response.flash = 'please fill the form'
>     return {"form": form}
>
>
> the function I redirect to 
>
>
> def infodisplay():
>     # TODO
>     return dict(form=session.form, druginfo=session.drug_info)
>
>
>
> # The view
>
> # It is a little bit of weired for my layout.html, because I want to update 
> both left sidebar and main section, but I think I cannot use two {{include}} 
> for here
>
> # So, what I did is include left sidebar from default, like this
>
>
> {{if left_sidebar_enabled:}}
>   <div class="col-md-3 left-sidebar">
>       {{block left_sidebar}}
>       {{include 'default/leftbar.html'}}
>       {{end}}
>   </div>
> {{pass}}
>
>
> # for infodisplay, I have
>
>
> {{extend 'layout.html'}}
> {{=druginfo}}
>
>
> Thanks
>
>
>

-- 
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.

Reply via email to