btw you can do

requires=IS_IN_SET(...,multiple=True,_and=IS_NOT_EMPTY())

On Nov 17, 1:33 pm, mdipierro <mdipie...@cs.depaul.edu> wrote:
> > DenesL I agree that "multiple should mean 1 or more, not zero or more."
>
> I disagree. Multiple means 0 or more. Anyway, we cannot change this.
>
> On Nov 17, 12:06 pm, Kostas M <kmo...@hotmail.com> wrote:
>
> > At first thanks villas for the correction of the boolean 'multiple'
> > argument.
>
> > DenesL I agree that "multiple should mean 1 or more, not zero or
> > more."
>
> > Making though the following test:
>
> > >>> IS_IN_SET(['max', 'john'])('')
>
> > ('', 'value not allowed')>>> IS_IN_SET(['max', 'john'], multiple=True)('')
>
> > ([], None)
>
> > seems that the zero option strangely is allowed for the multiple case.
>
> > According 
> > to:http://www.web2py.com/examples/static/epydoc/web2py.gluon.validators....
> > this is due to lines:
> >  327              if self.multiple and (value == None or value ==
> > ''):
> >  328                  return ([], None)
>
> > I think should return (value, self.error_message), as is the case for
> > multiple=False
>
> > > Because multiple is not False, but I am not sure about the logic.
> > > No selection should still fail because it is not in the set,
> > > i.e. multiple should mean 1 or more, not zero or more.
>
>

Reply via email to