It throws an error for IS_IN_DB. It's just missing 'self.zero = zero' in the __init__ function. It works after that. I'm curious though, why did you moved it from OptionsWidget to the validators?
On Sep 7, 10:25 am, mdipierro <mdipie...@cs.depaul.edu> wrote: > 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 -~----------~----~----~----~------~----~------~--~---