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