You can do:

  otherSubject = request.post_vars.otherSubject or 'whatever'

 form = FORM(
       FIELDSET('Subject: ', INPUT(_name='subject')),
       FIELDSET('Other subject: ', INPUT(_name='otherSubject', value 
= otherSubject)),
       FIELDSET('Recipients: ', INPUT(_name='recips', )),
       FIELDSET('Message: ', TEXTAREA(_name='message')),
       INPUT(_type='submit', _value='send', _name='sendBtn'),
       INPUT(_type='submit', _value='cancel', _name='cancelBtn')
       )

Matt

On Thursday, November 1, 2012 2:35:06 PM UTC+13, MichaelF wrote:
>
> Jim,
>
> Thanks. I had already tried that, and it doesn't work for me. I wrote a 
> little controller to test it:
>
> @auth.requires_login()
> def test_vars():
>    form = FORM(
>        FIELDSET('Subject: ', INPUT(_name='subject')),
>        FIELDSET('Other subject: ', INPUT(_name='otherSubject')),
>        FIELDSET('Recipients: ', INPUT(_name='recips', )),
>        FIELDSET('Message: ', TEXTAREA(_name='message')),
>        INPUT(_type='submit', _value='send', _name='sendBtn'),
>        INPUT(_type='submit', _value='cancel', _name='cancelBtn')
>        )
>
>    if form.accepts(request, keepvalues=True):
>       response.flash = 'oky'
>    elif form.errors:
>       response.flash = 'form has errors'
>    else:
>       form.vars.subject = 'my subject'
>       form.element(_name='otherSubject')['_value'] = 'other subject'
>
>    return dict(form=form)
>
> I have no view, so I get the default. The form I see displayed has a blank 
> for the field 'subject', and the field 'otherSubject' is filled with 'other 
> subject'.
>
> Now, that said, I could *easily* believe I'm screwing something else up. 
> If that example works on your system, then there's something else I'm doing 
> wrong. Thoughts?
>
> On Wednesday, October 31, 2012 5:59:26 PM UTC-6, Jim S wrote:
>>
>> form.vars.fieldname = 'fieldvalue'
>>
>>
>> -Jim
>>
>> On Wednesday, October 31, 2012 6:13:20 PM UTC-5, MichaelF wrote:
>>>
>>> I have a 'regular' form (i.e., FORM, not SQLFORM). I want to prepopulate 
>>> some of the fields, but I don't know the values to use for them when I 
>>> first create the form. What's the best practice for populating field 
>>> 'subject'? Is it using the 'element' function? For example:
>>>
>>> form = FORM(
>>>     FIELDSET('Subject: ', INPUT(_name='subject')),
>>>     FIELDSET('Recipients: ', INPUT(_name='recips', )),
>>>     FIELDSET('Message: ', TEXTAREA(_name='message')),
>>>     INPUT(_type='submit', _value='send', _name='sendBtn'),
>>>     INPUT(_type='submit', _value='cancel', _name='cancelBtn'))
>>> if form.accepts(...):
>>>    ...
>>> elif form.errors:
>>>    ...
>>> else:
>>>    someCalculatedValue = some_database_call()
>>>    form.element(_name='subject')['_value'] = someCalculatedValue
>>>
>>> Thanks.
>>>
>>

-- 



Reply via email to