Hmm, I dont get it, I have defaults for fields that are not required:
db_siteadmin.define_table('cms_users',
SQLField('user_name' , 'string', length = 50, required
= True, unique = True),
SQLField('password' , 'password', length = 128),
SQLField('email' , 'string', length=255, required
= True, unique = True),
SQLField('group_type' , 'string', length=50),
SQLField('is_active' , 'boolean', default=True),
SQLField('created_on' , 'date',
default=datetime.date.today()),
SQLField('modified_on' , 'date'),
migrate = migrate_value
)
db_siteadmin.cms_users.user_name.requires =
[IS_NOT_IN_DB(db_siteadmin, 'cms_users.user_name'), IS_NOT_EMPTY()]
db_siteadmin.cms_users.email.requires =
[IS_NOT_IN_DB(db_siteadmin, 'cms_users.email'), IS_EMAIL(),
IS_NOT_EMPTY()]
and this is the form:
form = FORM(
FIELDSET(
LABEL(T('User name'), _for="user_name"),
INPUT(_name="user_name", _size="40",
requires=[IS_NOT_EMPTY(),
IS_NOT_IN_DB(db_siteadmin,'cms_users.user_name')]),
LABEL(T("Email"), _for="email"),
INPUT(_name="email", _size="40",
requires=[IS_NOT_EMPTY(),
IS_NOT_IN_DB(db_siteadmin,'cms_users.email'), IS_EMAIL()]),
LABEL(T("Password"), _for="password"),
INPUT(_name="password", _size="20", _type =
"password", requires = [IS_NOT_EMPTY(), IS_ALPHANUMERIC(), CRYPT()]),
LABEL(T("Repeat password"), _for="password2"),
INPUT(_name="password2", _size="20", _type =
"password", requires = [IS_NOT_EMPTY(), IS_ALPHANUMERIC(), CRYPT()]),
INPUT(_type="submit", _value=T('Add user')),
_name="adduser_form"
)