Rather than using the "fields" argument, to suppress a field in the grid, just set its "readable" attribute to False (before creating the grid):
db.t1.bb.readable = False grid = SQLFORM.grid(db.t1) Anthony On Tuesday, May 24, 2016 at 8:44:53 AM UTC-4, mweissen wrote: > > Let's say I have table with two integer fields and one virtual field: > > db.define_table('t1', > Field('aa','integer'), > Field('bb','integer'), > Field.Virtual('ab', lambda row: row.t1.aa+row.t1.bb), > ) > > > The SQLFORM.grid works fine: > > def ab(): > grid=SQLFORM.grid(db.t1, > fields=(db.t1.aa, db.t1.bb, db.t1.ab), > user_signature=False, > ) > return locals() > > > But I do not want to show the column bb and I tried: > > def ab(): > grid=SQLFORM.grid(db.t1, > fields=(db.t1.aa, db.t1.ab), > user_signature=False, > ) > return locals() > > > and - of course - now I get a "key error", because the virtual field > cannot access db.t1.bb. > > I understand, that the fields parameter decides, which columns should be > displayed AND which columns could be used in expressions, e.g. in a > lambda-function. But these columns could be different. > > My question: > How can I use both columns in a function, but without displaying both > columns in the grid? > > Or simple: is it possible to suppress a column in the grid which has been > selected in the fields parameter? > > Regards Martin > > > -- 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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.