I could make it work.
Changed the virtual field from:
Field.Virtual('total', lambda row: row.trabalho.konsulta.count()),
To:
Field.Virtual('total', lambda row: db((db.konsulta.trabalho_id==
row.trabalho.id)).count())
Both fields work in the shell, but just the second works in the grid...
Can someone explain to me why ??
On Tue, Jan 19, 2016 at 3:09 PM, Marcello <[email protected]> wrote:
> Hello,
>
> I have a one to many configuration, using mysql database.
> I want to show a grid with the "one" table, and for each row, count the
> "many".
>
> For that I created a total virtual field.
> It works OK in the shel, for example....
>
> But when I call the SQLFORM.grid I get an error....
>
> Why do this happen ???
> Is there a way to get this ??
>
>
> Thanks
> Marcello
>
> db.define_table(
> 'trabalho',
> Field('descricao','string'),
> Field.Virtual('total', lambda row: row.trabalho.konsulta.count()),
> )
>
> db.define_table(
> 'konsulta',
> Field('trabalho_id', 'reference trabalho'),
> Field('name','string'),
> )
>
>
> I want to show a grid with:
> grid = SQLFORM.grid(db.trabalho, editable=True, create=False,
> deletable=False)
>
> When I call it, I get:
> <type 'exceptions.KeyError'>
>
>
>
> --
> 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.
>
--
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.