This will probably a facepalm moment but I can not figure it out. My present used form function
form = SQLFORM.factory( Field('setup', requires=IS_IN_DB(db, db.setup.setupname, '%(setupname)s') )) Model db.define_table('setup', Field('setupname', type='string', unique=True, label=T('Setup name')), Field('description', type='string', label=T('Description')), Field('frame_id', db.frame, label=T('Frame ID')), Field('course_id', db.course, label=T('Course ID')), Field('ready', type='boolean', default=False, label=T('Ready for use')), Field('nostorage', type='boolean', default=False, label=T('No storage needed')), Field('noprofiles', type='boolean', default=False, label=T('No profiles needed')), Field('nonim', type='boolean', default=False, label=T('No nim actions needed')), Field('securitylevel', type='integer', default=0, label=T('Security Level')), Field('created_on','datetime',default=request.now, label=T('Created On'),writable=False,readable=False), Field('modified_on','datetime',default=request.now, label=T('Modified On'),writable=False,readable=False, update=request.now), format='%(setupname)s', migrate=settings.migrate) What I try to get is that the form only shows the setupname of the records where setup.read==True and then returns setup.id so I can use that. A addtional would be that the first selection is the first record and not empty. Thanks in advance. With regards, Mike Veltman