I've found a solution:

rows = db(db[table].id == id).select()
rendered_row = rows.render(0, fields=[db[table][column]])
value = rendered_row[column]

On Saturday, April 21, 2018 at 12:31:49 PM UTC+2, xelomac wrote:
>
> Thank you Anthony. Works perfectly in a SQLFORM.grid. The values get 
> displayed as expected. 
>
> But outside of the grid for something like this
>
> persons = db(db[table].id == 1).select()
> person=persons[0][column]
>
> the stored values get displayed not its representation. How can I get the 
> representation of the stored value here?
>
> On Monday, April 16, 2018 at 1:55:18 AM UTC+2, Anthony wrote:
>>
>> The validator controls the widget used in forms but not the format in the 
>> grid -- for the latter, use the "represent" attribute:
>>
>> represent=lambda v, r: GENDER[v]
>>
>> Anthony
>>
>> On Sunday, April 15, 2018 at 4:47:27 AM UTC-4, xelomac wrote:
>>>
>>> Consider the following example.
>>>
>>> Model:
>>>
>>> GENDER = {"male": T("Mr.", lazy=False),
>>>             "female": T("Ms.", lazy=False)}
>>>
>>> db.define_table('person',
>>>     Field('gender', label = T('Salutation'), requires=IS_IN_SET(GENDER)),
>>>     Field('first_name', label = T('First Name'),
>>>     Field('last_name', label = T('Last Name')),
>>>     format = '%(last_name)s')
>>>
>>> In a SQLFORM.grid I want to represent the field gender by its translated 
>>> label not by its value. How can I achieve this?
>>>
>>>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to