Those are not setters. They are getters.

You use them as in {{=form.custom.inpval['fieldname']}} in custom html
forms, not to override settings.

massimo

On Dec 27, 1:13 pm, "Arun K.Rajeevan" <[email protected]> wrote:
> I have these tables,
>
> db.define_table('languages',
>                 Field('full', 'string', length=30, notnull=True,
> required=True),
>                 Field('short', 'string', length=10 , notnull=True,
> required=True),
>                 format='%(full)s - %(short)s')
>
> db.define_table('words',
>                 Field('word', 'string', length=128, notnull=True,
> required=True),
>                 Field('lang', db.languages, notnull=True))
>
> index is like this
>
> def index():
>     form = SQLFORM.factory(db.words)    
>     return dict(form=form)
>
> and in view:
> (My aim is to replace select box with my own select box which removes one
> option from select box)
> (But use case is really, replacing default select box with a select box that
> have <OPTGROUPS >)
>
> defaultlang = db(db.languages.full =='All Languages').select().first()
> lst = db(db.languages.id>0).select().sort(lambda a: a.full).exclude(lambda
> a: a.id != defaultlang.id)
> options = [OPTION(row['full'] + '  - ' + row['short'], _value=row['id']) for
> row in lst]
>
> Now I tried following, individually of course:
> form.custom.inpval['lang']= SELECT(*options)
> form.custom.dspval['lang']= SELECT(*options)
> form.custom.widget['lang']= SELECT(*options)
>
> If I display form {{=form}} select box is still old one.
> If I try {{form.custom}} then corresponding (ie., inpval.lang, dspval.lang,
> widget.lang) displays new select box.
> But {{=form}} still displays old select box.
>
> So what's the use of custom.inpval, dspval and widget?
>
> And, How to solve this particular problem? (ie., customizing an element
> (here change an select box with a select box which have optgroups))

Reply via email to