Try this...
Model
db.define_table('trainer',
Field('name'),
Field('specialty'),
auth.signature,
format='%(name)s',
migrate=True,
)
db.define_table('dogs',
Field('name'),
Field('bites', 'boolean'),
Field('trainer', 'reference trainer'),
auth.signature,
format='%(name)s',
migrate=True,
)
unassignedtrainers = (~db.trainer.id.belongs(db()._select(db.dogs.trainer)))
db.dogs.trainer.requires = IS_IN_DB(db(unassignedtrainers), 'trainer.id',
'%(name)s',zero=T('choose one'))
if not db(db.trainer.id>0).count():
db.trainer.insert( name="Alan", specialty="alsatians" )
db.trainer.insert( name="Ben", specialty="blind dogs" )
db.trainer.insert( name="Carl", specialty="corgis" )
if not db(db.dogs.id>0).count():
db.dogs.insert( name="Fido", bites=False, trainer=None )
db.dogs.insert( name="Rover", bites=True, trainer=None )
Controller:
def assign_trainers():
grid = SQLFORM.grid((db.dogs.trainer==None),user_signature=False)
return locals()
I think it works, but I didn't test it very much.
Rgds, David
--