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

-- 



Reply via email to