You have to pass it SQLFORM.grid(...,field_id=db.lvdisksetup.id,....)
else it does not know what table to use. On Thursday, 29 March 2012 19:58:52 UTC-5, Gwayne aka Mike Veltman wrote: > > On 03/30/2012 12:01 AM, Massimo Di Pierro wrote: > > When you say "I want to manipulate db.lvdisksetup but in stead it > manipulates db.lvdisk" what do you mean by "manipulates"? > > > That when I delete a record or do add a record it gives me the db.lvdisk > table and not the db.lvdisksetup table. > > So I delete or add a record that is supposed to be a reverence. > > > > On Wednesday, 28 March 2012 22:58:31 UTC-5, Gwayne aka Mike Veltman wrote: >> >> Gentle people, >> >> I have the following grid: >> >> query = ( (db.lvdisksetup.lvgroupname_id == usedlvdisksetup) & ( >> db.lvgroupname.id == usedlvdisksetup) & (db.lvdisksetup.lvdisk_id == >> db.lvdisk.id) ) >> fields = [db.lvdisksetup.id, db.lvgroupname.lvgroupnamedesc , >> db.lvdisk.lvdiskdesc, db.lvdisksetup.lunid] >> >> form = SQLFORM.grid(query, >> fields=fields, >> orderby=['lvdisksetup.lunid'], >> csv=False, >> create = False, >> maxtextlength=45 >> ) >> >> I want to manipulate db.lvdisksetup but in stead it manipulates db.lvdisk >> :-) >> >> What causes havoc by deleting essential table data :) >> >> Part of the db models :) >> >> # All the LV sizes will be collected in here in bytes, like 30GB, 10GB, >> 2GB etc >> db.define_table('lvsize', >> >> Field('sizename', type='string', >> unique=True, >> label=T('Lun Size')), >> Field('size', type='string', >> label=T('LV Size in bytes')), >> 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), >> migrate=settings.migrate) >> >> # The LV Disk groups >> db.define_table('lvgroupname', >> >> Field('lvgroupnamedesc', type='string', >> unique=True, >> label=T('LV Disk Groupname ')), >> 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), >> migrate=settings.migrate) >> >> # Table rules >> db.lvgroupname.lvgroupnamedesc.requires = IS_NOT_EMPTY() >> >> # Logical volume on storage >> db.define_table('lvdisk', >> >> Field('lvdiskdesc', type='string', >> unique=True, >> label=T('LV Disk description ')), >> Field('lvsize_id', db.lvsize, >> default=2, >> label=T('Size ID')), >> 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), >> migrate=settings.migrate) >> >> # Table rules >> db.lvdisk.lvsize_id.requires = IS_IN_DB(db, 'lvsize.id', >> 'lvsize.sizename') >> db.lvdisk.lvdiskdesc.requires = IS_NOT_EMPTY() >> >> >> # lvdisksetup >> db.define_table('lvdisksetup', >> >> Field('lvdisk_id', db.lvdisk, >> default=1, >> label=T('Logical volume to be added')), >> Field('lvgroupname_id', db.lvgroupname, >> default=1, >> label=T('Member of Logical volume group name')), >> Field('lunid', type='integer', >> default=2, >> label=T('Lun ID')), >> 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), >> migrate=settings.migrate) >> >> # Table rules >> db.lvdisksetup.lvdisk_id.requires = IS_IN_DB(db, 'lvdisk.id', >> 'lvdisk.lvdiskdesc') >> db.lvdisksetup.lvgroupname_id.requires = IS_IN_DB(db, 'lvgroupname.id', >> 'lvgroupname.lvgroupnamedesc') >> >> >> # hbahostgroupsetup (to add the right disks to a hba or a hostgroup) >> db.define_table('hbahostgroupsetup', >> >> Field('hbahgdesc', type='string', >> label=T('LV Disk setup Description ')), >> Field('lvgroupname_id', db.lvgroupname, >> default=1, >> label=T('LV Disk')), >> Field('mapping_id', db.storagemap, >> default=1, >> label=T('HBA or Hostgroup mapping')), >> 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), >> migrate=settings.migrate) >> >> # Table rules >> db.hbahostgroupsetup.lvgroupname_id.requires = IS_IN_DB(db, ' >> lvgroupname.id', 'lvdisk.lvgroupnamedesc') >> db.hbahostgroupsetup.mapping_id.requires = IS_IN_DB(db, 'storagemap.id', >> 'storagemap.mapping') >> db.hbahostgroupsetup.hbahgdesc.requires = IS_NOT_EMPTY() >> >> # disksetupname (to make it possible to have the same lv setup for >> different class setups) >> db.define_table('disksetupname', >> >> Field('disksetupnamedesc', type='string', >> label=T('LV Disk group selection description ')), >> 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), >> migrate=settings.migrate) >> >> # Table rules >> db.disksetupname.disksetupnamedesc.requires = IS_NOT_EMPTY() >> >> # hbahggroup >> db.define_table('hbahggroup', >> >> Field('hbahostgroupsetup_id', db.hbahostgroupsetup, >> default=1, >> label=T('LV on HBA or Hostgroup setup')), >> Field('disksetupname_id', db.disksetupname, >> default=1, >> label=T('Member of Diskgroup')), >> 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), >> migrate=settings.migrate) >> >> # Table rules >> db.hbahggroup.hbahostgroupsetup_id.requires = IS_IN_DB(db, ' >> hbahostgroupsetup.id', 'hbahostgroupsetup.hbahgdesc') >> db.hbahggroup.disksetupname_id.requires = IS_IN_DB(db, 'disksetupname.id', >> 'disksetupname.disksetupnamedesc') >> > >