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