Some code:
****
view
****
{{extend 'layout.html'}}
{{=servers}}
{{=server_capabilities}}
**********
controller
**********
def index():
links = [lambda row: A('Check status',_href=URL(c='administration',
f='check_server_status/%s' % row.id))]
servers = SQLFORM.grid(
db.servers,
formname="srvrs",
links = links,
deletable=True,
editable=True,
create=True
)
server_capabilities = SQLFORM.grid(
db.server_capabilities,
formname="capabilities",
deletable=True,
editable=True,
create=True
)
return dict(servers=servers, server_capabilities=server_capabilities)
*****
model
*****
db.define_table('servers',
Field('name', 'string', length=63, default='testserver',
required=True, notnull=True, unique=True, label="Server name"),
Field('ip', 'string', requires=IS_IPV4(), required=True,
notnull=True, unique=True, label="Server ip address"),
Field('testimon_folder', 'string', length=256,
default='/home/user', required=True, notnull=True, label='TestiMon
installation folder'),
format="%(name)s"
)
db.define_table('server_capabilities',
Field('server_id', db.servers, requires=IS_IN_DB(db, 'servers.id',
'servers.name')),
Field('provides', 'string', length=63, required=True, notnull=True,
label='Provides'),
format="%(provides)s"
)
db.server_capabilities.server_id.represent = lambda id, row:
db(db.servers.id==id).select().first().name