I will double check because clearly something is wrong. Meanwhile, how
about this:

db.define_table('foo', Field('x'), format='%(x)s')
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)

On Jan 26, 10:37 am, Pawel Jasinski <pawel.jasin...@gmail.com> wrote:
> 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

Reply via email to