The IS_IN_SET validator allows to list the options as a dictionary (
http://web2py.com/books/default/chapter/29/07/forms-and-validators?search=IS_IN_SET
)
Therefore, for an example, you could do:
def index():
options = {'Apple':T('Apple'),'Banana':T('Banana'),'Cherry':T('Cherry')}
form=SQLFORM.factory(Field('fruit',requires=IS_IN_SET(options,zero=None
)))
if form.accepts(request, session):
selected = options[form.vars.fruit]
saved = form.vars.fruit
response.flash='selected %s in drop down list, saved %s in db' %(
selected, saved)
return dict(form=form)
Il giorno sabato 16 novembre 2013 01:41:26 UTC+1, 黄祥 ha scritto:
>
> yes, can, but be carefull if you have the conditional logic to check value
> of that field and your site support multilanguage.
> e.g.
> db.supplier.gender.requires = IS_IN_SET([T('Male'), T('Female')])
>
> if you have a conditional logic to check the value of that field, and your
> site support multilanguage, i suggest you better not translate it. because
> let say, you have the value Male and Female, when the user use the language
> not in english and then submit it, and then you use it for check if
> db.supplier.gender == T('Male) for example. and the value in database is
> the translated of the value, then the logic is always false because the
> value in database is in translated language.
>
> best regards,
> stifan
>
--
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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.