>
> In line 14, db.image.title represents the field "title" of table
> "image". The
> attribute requires allows you to set requirements/constraints that
> will be
> enforced by web2py forms. Here we require that the "title" is unique:
> IS_NOT_IN_DB(db, db.image.title)
> Notice this is optional because it is set automatically given that
> Field(’title’,
> unique=True).
>
The book says that explicitly adding the IS_NOT_IN_DB validator is optional
because if you specify unique=True but do not explicitly specify any
validators at all, the IS_NOT_IN_DB validator will be assigned
automatically. For example:
>>> db.define_table('user', Field('username', unique=True))
>>> print db.user.username.requires
[<gluon.validators.IS_NOT_IN_DB object at 0x000000000439D710>,
<gluon.validators.IS_LENGTH object at 0x000000000439D5F8>]
Notice that I did not specify the IS_NOT_IN_DB validator in the field
definition, but it was added anyway because I set unique=True. Note, this
only happens if you don't specify "requires" at all.
Anthony