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.