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.

Reply via email to