Perfect. Solved my problem. :) i didn't try _format, my fault.

Thank you very much.


On 21 sep, 23:09, mdipierro <[email protected]> wrote:
> You can do
>
> db.define_table('person',Field('name'))
>
> db.define_table('dog',Field('name'))
>    format=lambda r: r.name+' belongs to '+r.person.name)
>
> and
>
> for dog in db(db.dog.id>0).select():
>     print db.dog._format(dog)



>
> On Sep 21, 3:29 pm, Jose Hurtado <[email protected]> wrote:
>
>
>
> > i now have the lambda function defined, but... on the view, how call i
> > the function format, the record is stored under 'row' key on
> > dictionary passed to the view. i tried row.format, row.represent,...
> > but i only get errors :(
>
> > one thing, my query access the record by the id, not by the reference
> > field under another table.
>
> > On 21 sep, 21:52, mdipierro <[email protected]> wrote:
>
> > > format can be a function
>
> > > db.define_table('person',Field('first_name'),Field('last_name'),
> > >    format=lambda r: r.first_name+' '+r.last_name)
>
> > > where r is the record to be represented. Hope that helps.
>
> > > On Sep 21, 10:51 am, Jose Hurtado <[email protected]> wrote:
>
> > > > Hello,
>
> > > > just started using web2py a few days ago and liked it so here i am
> > > > with my first app :)
>
> > > > so sorry if my question have been solved, i did a few searches a
> > > > didn't find it.
>
> > > > My problem:
>
> > > > I want to get a string representation of a record of a table, this
> > > > representation can be as easy as 1 field, or could be several fields
> > > > formatted.
>
> > > > In the db.define_table function, i included the format parameter
> > > > setting the representation i want for the record, but i think i can
> > > > only use it for select/option drop-downs and in reference fields on
> > > > another table. Another way could be to define a virtual field with the
> > > > format i want, so i can write row.personalized_virtual_field to get
> > > > the string representation, and use format='%
> > > > (personalized_virtual_field)s' to avoid repeating code (the definition
> > > > of the format).
>
> > > > Is this the way to do? or am i a bit lost and it could be done an easy
> > > > way?
>
> > > > Thank you.

Reply via email to