I modified your patch. In trunk try this
Field(...,requires=IS_IN_SET(('a','b','c'),zero=T('choose one'))) the option "zero" will be added at top but not accepted unless: Field(...,requires=IS_NULL_OR(IS_IN_SET(('a','b','c'),zero=T('choose one')))) please give it a try. Massimo On Sep 5, 12:03 pm, Iceberg <iceb...@21cn.com> wrote: > On Sep5, 11:51pm, "mr.freeze" <nat...@freezable.com> wrote: > > > Perhaps a better solution is checking if the value for 'default' > > argument is *not* in the set and then appending it to the set but not > > allowing it to pass validation if selected. What do you think? > > You are a genius! This solution reaches the original goal without any > known side effect. > > And the implementation is simple, too. Just add the following 2 lines > into OptionsWidget() 's widget(), one line before the final return. > Problem solved! > > if value not in [k for k,v in options]: > opts += [OPTION(value,_value=value)] > > Strongly recommended! Thanks Freeze! --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py-users" group. To post to this group, send email to web2py@googlegroups.com To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---