It works!!

Thanks Denes!!

On 13 oct, 12:35, DenesL <[email protected]> wrote:
> Hi Bernardo,
>
> you would have to add a represent to table2.reference_table1:
>
> db.table2.reference_table1.represent = lambda v: '%(atribute1)s'
> %db.table1[v]
>
> requires is used during input
> while represent is for output.
>
> Denes
>
> On Oct 13, 5:05 am, Bernardo <[email protected]> wrote:
>
>
>
> > Dear all,
>
> > When making a form using SQLFORM, everything goes fine until I use the
> > readonly=True statement. I then just shows the id (and not the name of
> > the record).
>
> > For example:
>
> > I have two tables like this
>
> > db.define_table('table1',
> >     Field('atribute1', 'string')
> > )
>
> > db.define_table('table2',
> >     Field('reference_table1', db.table1, requires = IS_IN_DB(db,
> > 'table1.id', '%(atribute1)s')),
> >     Field('atribute2', 'string')
> > )
>
> > If my SQLFORM is:
> > form = SQLFORM(db.table2, record = request.args(0),
> > fields=['reference_table1', 'atribute2'])
>
> > Then everything goes perfect. It shows a form to modify this record,
> > with the atribute1 value from the referenced record of table1.
>
> > But if the SQLFORM is:
> > form = SQLFORM(db.table2, record = request.args(0), readonly=True,
> > fields=['reference_table1', 'atribute2'])
>
> > The form shown, is a readonly form(which is right), but the value
> > shown in the reference_table1 is not atribute1, but the id from the
> > record on table1.
>
> > How can I solve this?
>
> > If I have not explained myself clearly enough, please do not hesitate
> > on asking me further.
>
> > Thanks and kind regards,
> > Bernardo

Reply via email to