Thanks Anthony.
On Jun 9, 10:22 pm, Anthony <[email protected]> wrote: > On Thursday, June 9, 2011 1:01:02 PM UTC-4, Vineet wrote: > > > Hi ! > > > Below given is a table --- > > <code> > > db.define_table('ac', > > Field('acnm','string', IS_LENGTH(100), length=100, required=True), > > Field('acgrpid', db.acgrp, notnull=True, required=True), > > Field('active', 'string', IS_LENGTH(1), length=1, > > requires=IS_LENGHT(1), default='Y', required=True, notnull=True), > > Field('homeunit', db.unit, notnull=True, required=True), > > Field('showall', 'string',IS_LENGTH(1), length=1, > > requires=IS_LENGHT(1), default='Y', required=True, > > notnull=True), > > migrate=False > > ) > > </code> > > > --- In the Field 'active', I have written --- required=True, > > notnull=True. > > From the documentation, the purpose of "required" is understood. > > 1) But where does "notnull" come in action? (whether in AJAX > > validation or while DAL inserts or somewhere else). > > 'required' is enforced by the DAL, and notnull is enforced by the database > itself (it is equivalent to the "NOT NULL" SQL statement). Note, because > notnull affects the actual database table, I think changing it requires > migrations to be on. > > > > > 2) For the Field 'active', I want to have a set of 2 values ('Y' & > > 'N'). > > In FORM, the user would be able to select a value from these 2 values > > ONLY. (default is 'Y'). > > Use requires=IS_IN_SET(['Y','N']). In that case, you won't have to bother > with IS_LENGTH. > > Anthony

