yes, self-redirection restart controller in 'request fresh form' mode, but usually your have to re-pass to URL() args/vars which don't have relation to the form to provide expecting behaviour - just keep in mind this.
2017-01-23 4:11 GMT+03:00 Dave S <snidely....@gmail.com>: > On Sunday, January 22, 2017 at 2:56:07 PM UTC-8, Val K wrote: >> >> The problem is that one controller is used for generation and process >> form. it's like different modes >> pre-populating form by assignments form.vars.name=... could be used >> only for the request form, when form is submitted these assignments have no >> effect. >> if you want to change anything in the form after it was processed, you >> have to use DOM-parsing ( something like form[0].element('input', >> _name='...')['_value'] = ... ) >> >> Use keepvalues=True or db.table.field.default as suggested above (it >> does the pre-populating during form.process()) >> There is brute force variant - self-redirection : if >> form.process().accepted: ... *session.*flash='OK'; redirect(URL()) - >> but don't forget about args/vars/user_signature if it matters >> >> >> > Okay, I guess I was expecting submission to result in a fresh form > creation, but it takes the self-redirection to acheive that, eh? > > /dps > > > >> On Sunday, January 22, 2017 at 11:58:06 PM UTC+3, Dave S wrote: >>> >>> >>> >>> On Sunday, January 22, 2017 at 2:50:16 AM UTC-8, Val K wrote: >>>> >>>> Pre-populating - means just default values which will be overwritten >>>> during form.process(), i.e. form.process() reads vars values only >>>> from request.*post_*vars or from 'vars' arg - form.process(vars = >>>> {...} ) and ignores pre-sets like form.vars.name=... >>>> >>>> There was a mistake in my post: instead request.vars must be >>>> request.*post_*vars - I fixed this >>>> >>>> >>> >>> But default is what I want! If I didn't want to be able to change the >>> value when filling out the form, I wouldn't even need to provide the field. >>> >>> /dps >>> >>> >>> >>>> On Sunday, January 22, 2017 at 12:48:45 PM UTC+3, Dave S wrote: >>>>> >>>>> >>>>> >>>>> On Friday, January 20, 2017 at 9:23:37 AM UTC-8, Val K wrote: >>>>>> >>>>>> form.vars appear only after form.process() call (process() - >>>>>> filter/convert/format/validate request.vars to form.vars) >>>>>> you have variants : >>>>>> 1. *before *form creation - modify field.default >>>>>> 2. *before* form.process() - modify request.vars - >>>>>> request.vars.PostDate=... >>>>>> 3. pass your own set of vars - form.process(vars=myvars) >>>>>> 4. use form.process( onvalidation=myvalidation_fun) to modify >>>>>> form.vars *after *basic validation passed but before any db actions >>>>>> >>>>>> >>>>>> >>>>>> >>>>> But what about this passage in the book? >>>>> >>>>> <URL:http://web2py.com/books/default/chapter/29/07/forms-and >>>>> -validators#Pre-populating-the-form> >>>>> Pre-populating the form >>>>> >>>>> It is always possible to pre-populate a form using the syntax: >>>>> >>>>> 1 >>>>> >>>>> form.vars.name = 'fieldvalue' >>>>> >>>>> Statements like the one above must be inserted after the form >>>>> declaration and before the form is accepted, whether or not the field >>>>> ("name" in the example) is explicitly visualized in the form. >>>>> >>>> -- > 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 a topic in the > Google Groups "web2py-users" group. > To unsubscribe from this topic, visit https://groups.google.com/d/ > topic/web2py/hT-z8wbGr38/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > web2py+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- 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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.