yes; it's:
db.define_table('user',
SQLField('email', 'string', length=320, notnull=True,
required=True, unique=True),
SQLField('greet', 'boolean'),
SQLField('day', 'string', length=2),
SQLField('month', 'string', length=9),
SQLField('year', 'string', length=4))
and then for FORMs I have:
db.user.email.requires=[IS_LOWER(), IS_EMAIL(), IS_NOT_IN_DB(db,
db.user.email)]
db.user.greet.requires=[IS_NOT_EMPTY()]
I can't find in the web2py framework code where the exception would be
thrown.
I'm using sqlite locally.