Hi Anthony, In db.py I defined these tables:
db.define_table('Organization', Field('nodeID',db.Node,default='',notnull=True,ondelete='CASCADE',writable=False,readable=False), Field('name',length=128,default='',notnull=True), ..., migrate=False) db.define_table('Address', Field('nodeID',db.Node,default='',notnull=True,ondelete='CASCADE',writable=False,readable=False), ..., migrate=False) db.Address.nodeID.requires=[IS_IN_DB(db,'Node.id','%(id)s',zero='select a value'),IS_NOT_IN_DB(db(db.Address.addrType==request.vars.addrType),db.Address.nodeID,error_message='combination node and addr type already in database')] db.Address.nodeID.represent=lambda nodeID, row: db(db.Organization.nodeID==nodeID).select().first().name In case of this URL: http://127.0.0.1:8000/init/appadmin/select/db?query=db.Address.id%3E0 Address.nodeID is represented by Organization.name. In case of this URL: http://127.0.0.1:8000/init/appadmin/update/db/Address/1 Address.nodeID is 1. I also have custom registration process, in the function in which I add the user I have the following lines of code: @auth.requires(lambda: auth.has_membership(ADMIN)) def adduser(): .... row=db(db.Register.id==request.args(0)).select(db.Register.ALL).first() organization=db(db.Organization.cocNumber==row.cocNumber).select(db.Organization.ALL).first() id=organization.nodeID db.auth_user.nodeID.represent=lambda nodeID,row: organization.name form=SQLFORM.factory(db.auth_user,ignore_rw=True,separator='') ... form.vars.nodeID=id if form.process().accepted: ... elif form.errors: ... else: ... return dict(form=form) and in the view {{=form}} In this case I experience the same problem nodeID is 1 instead of Organization.name I hope I provided sufficient information. Kind regards, Annet