Also if I choose both values in the select you get:
Accepted Variables
locations : |1|2|
Whereas I would have expected it to be:
Accepted Variables
locations : 1|2
Looking at validators.py lines 297/8
if self.multiple:
return ('|%s|' % '|'.join(values), None)
Shouldn't that be?
if self.multiple:
return ('%s' % '|'.join(values), None)
Matt
On Apr 11, 12:38 pm, Matt <[email protected]> wrote:
> Hi there,
>
> I'm attempting validate a multiple select against a set of values.
> I.e.
>
> def test():
> form = FORM(INPUT(_name='title', requires=IS_NOT_EMPTY()),
> SELECT([1,2], _name='locations', _multiple='multiple',
> requires=IS_IN_SET([1,2], multiple=True, error_message='Please select
> several locations')),
> INPUT(_type='submit', _value='Save'))
>
> if form.accepts(request.vars, session):
> session.flash="Valid"
>
> return dict(form=form)
>
> In test.html:
>
> {{= form }}
>
> <h2>Submitted variables</h2>
>
> {{= BEAUTIFY(request.vars) }}
>
> <h2>Accepted Variables</h2>
>
> {{= BEAUTIFY(form.vars) }}
>
> <h2>Errors in form</h2>
>
> {{= BEAUTIFY(form.errors) }}
>
> when I submit the form with _no entries or selections_ I get:
>
> Submitted variables
> title :
> Accepted Variables
> locations : || <---- This is wrong. I must provide a
> value from the
> set.
> title :
> Errors in form
> title : enter a value
>
> Is this possibly a bug or I am doing something wrong here?
> Matt
--
To unsubscribe, reply using "remove me" as the subject.