Thanks DenesL, and yes I knew that multiple=True accepted 0 or more, I just wasn't sure if there was another validator that I could use in conjunction with IS_IN_SET(multiple=True) So then I have to create my own check, there's not "quick fix"?
Thanks Jon ;) On Sep 30, 8:09 am, DenesL <denes1...@yahoo.ca> wrote: > Hi jkral, > > http://web2py.com/book/default/chapter/07#Validators > under IS_IN_SET and Tagging > "Note that when multiple=True, IS_IN_SET will accept zero or more > values, i.e. it will accept the field when nothing has been selected." > > so you have to check for an empty selection and error out. > > Example: > > def multiempty(): > > colors = ( (0, 'red'), (1, 'green'), (2, 'blue') ) > > def musthavecolor(form): > if not form.vars.color: > form.errors.color = 'can not be empty' > > form = SQLFORM.factory( > Field('color', > widget=SQLFORM.widgets.checkboxes.widget, > requires = IS_IN_SET(colors, multiple=True) ) > ) > > return dict(form = form.process( > onvalidation = musthavecolor, > message_onsuccess = 'ok', > message_onfailure = 'not ok')) > > On Sep 29, 2:11 pm, jkral <jk...@gogoair.com> wrote: > > > > > > > > > I am having some troubles getting my form to error when no items are > > selected in the environment field. > > Could someone please shed some insight? and I apologize in advance if > > this request is redundant. > > > from <specific module> import ENVIRONMENTS > > ##ENVIRONMENTS is a tuple > > > db.define_table('info', > > Field('info_number', 'integer', label='Info Number'), > > Field('description', 'text'), > > Field('environment', widget=SQLFORM.widgets.checkboxes.widget), > > Field('notice')) > > > db.info.environment.requires = IS_IN_SET(ENVIRONMENTS, multiple=True, > > error_message='Please select appropriate environment(s).') > > > The other fields error (if empty) based on their respective validators > > this is what I want for the environment field, but it returns an empty > > [] > > > Also please note that I did receive an error_message before I added > > multiple=True. > > > I have tried: > > > db.info.environment.requires = [IS_NOT_EMPTY(), > > IS_IN_SET(ENVIRONMENTS, multiple=True, error_message='Please select > > appropriate environment(s).')] > > > but no avail