OLD syntax:

represent=lambda id: settings.gender[id][1][:1])

new syntax

represent=lambda id, row: settings.gender[id][1][:1])

Notice we did not break backward compatibilty because the new syntax
is ONLY enforced in te new grid and smartgrid tools.

On Oct 6, 8:53 pm, niknok <[email protected]> wrote:
> When I try
>
>     form=SQLFORM.grid(db.person)
>
> with a defined represent parameter, I get the following error:
>
>     <lambda>() takes exactly 1 argument (2 given)
>
> The person table is defined as:
>
> db.define_table('person'
>                 ,Field('birth_date', 'date', requires=IS_DATE())
>                 ,Field('last_name', notnull=True)
>                 ,Field('given_name', notnull=True)
>                 ,Field('middle_name', label="Mother's maiden name")
>                 ,Field('gender', 'integer', 
> requires=IS_IN_SET(settings.gender, zero='pick one')
>                         ,represent=lambda id: settings.gender[id][1][:1])
>                 ,Field('father', 'reference person'
>                        ,requires=IS_EMPTY_OR(IS_IN_DB(db('person.gender'==1), 
> 'person.id'
>                                           ,zero=T('pick one'))))
>                 ,Field('mother', 'reference person'
>                        ,requires=IS_EMPTY_OR(IS_IN_DB(db('person.gender'==2), 
> 'person.id'
>                                           ,'%(last_name)s, %(given_name)s 
> [%(birth_date)s]'
>                                           ,zero=T('pick one'))))
>                 ,auth.signature
>                 ,format='%(last_name)s, %(given_name)s [%(birth_date)s]'
>                 )

Reply via email to