> > jodb.define_table('category', > Field('name', 'string', length=100, unique = True, requires = > IS_NOT_EMPTY()), >
Here, by explicitly specifying "requires", you are preventing web2py from automatically adding the IS_NOT_IN_DB validator, so you have to add that one explicitly as well. > jodb.category.name.requires = IS_NOT_IN_DB(jodb,jodb.category.name) > Here, by specifying the IS_NOT_IN_DB validator, you have overwritten the previously specified IS_NOT_EMPTY() validator. Instead, try: requires=[IS_NOT_EMPTY(), IS_NOT_IN_DB(jodb, jodb.category.name)] Or you can simply specify unique=True and notnull=True (without specifying any "requires"), and you will automatically get both of those validators. Anthony