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.