On Dec 15, 2011, at 3:29 AM, Chandrakant Kumar wrote: > I'm adding extra fields to auth_user as, > auth.settings.extra_fields['auth_user']= [ > Field('user_type', requires=IS_IN_SET('Admin', 'Staff'))] > > But, in the Register form I'm getting a listbox with single letter options > like, a, d, m, i, n. > Is there something missing?
The problem with this call is that IS_IN_SET requires the set to be its first argument, thus: auth.settings.extra_fields['auth_user']= [ Field('user_type', requires=IS_IN_SET(('Admin', 'Staff')))] This makes the first argument a tuple, ('Admin', 'Staff'), instead of a string, 'Admin' (which happens to be iterable, of course). For readability, you could write IS_IN_SET(['Admin', 'Staff']) or IS_IN_SET(tuple('Admin', 'Staff')) No need to use a dict.