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.

Reply via email to