Hi, I just hit the same problem and can reproduce in trivial case
in model: db.define_table('foo', Field('x')) db.define_table('bar', Field('label'), Field('ref',db.foo)) in controller: def insertone(): id=db.foo.insert(x="xxx") db.bar.insert(label="label",ref=id) def index(): record=db.bar(id=1) form=SQLFORM(db.bar,record,readonly=True) if form.accepts(request.vars,session): session.flash="accepted" return dict(form=form) this will produce 'None' on the ref field if I change index to be: def index(): record=db.bar(id=1) db.bar.ref.represent=lambda val: db.foo[val].x form=SQLFORM(db.bar,record,readonly=True) if form.accepts(request.vars,session): session.flash="accepted" return dict(form=form) everything is tiptop web2py version: 1.91.6 Cheers, Pawel