On Mar 2, 3:49 pm, DenesL <[email protected]> wrote: > Your setup seems to work for me.
Thanks for trying it. > "value not allowed" would happen if you don't select a last name from > the drop box. I definitely do. > Are the values in the drop box OK? Yes, they look OK. > What is in last_names? Just a simple Python list. > Which web2py version? 1.75.4 > > Denes. > > On Mar 2, 1:46 pm, "[email protected]" <[email protected]> > wrote: > > > > > I have a form with a string field that uses the IS_IN_SET validator. > > The set of strings that is allowed must be generated dynamically each > > time the form is generated. So I add the validator in the controller. > > ( See the snippet below. ) > > > The problem is that sometimes I get "value not allowed" validation > > errors from that field. Why? I am restricted to selecting only the > > items in the list given to IS_IN_SE. It seems like it would be > > impossible to select a value that is not allowed. > > > Maybe adding the validator in the controller is not correct but I > > don't know what is the correct way! > > > Here is a snippet showing the controller and also the table definition > > from the db.py file. (I stripped out the code for other fields just to > > make the snippet shorter. ) > > > Thanks in advance! > > > ======================= > > controller > > ======================= > > > def register_user_custom_form(): > > > # Dynamically get the list of valid last names > > last_names = get_last_names( ) # Call some function to get the > > list > > # Set the validator based on that > > db.reg_test.last_name.requires = IS_IN_SET( last_names, zero = > > "Select a Last Name" ) > > > form=SQLFORM(db.reg_test) > > if form.accepts(request.vars,session): > > response.flash='Your account has been created' > > elif form.errors: > > response.flash='Your account has not been created' > > > ### and get a list of all users > > records=SQLTABLE(db().select(db.reg_test.ALL)) > > return dict(form=form,records=records) > > > ================= > > table definition > > ================= > > > db.define_table('reg_test', > > Field('first_name',required=True,notnull=True,writable=True, > > label="First Name"), > > Field('last_name',required=True,notnull=True,writable=True, label= > > "Last Name"), > > ) > > db.reg_test.first_name.requires = IS_NOT_EMPTY() -- You received this message because you are subscribed to the Google Groups "web2py-users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/web2py?hl=en.

