Hello, I have this grid
# Hidden fields in grid and edit/view form. db.opt.canceled_on.readable = False db.opt.canceled_by.readable = False db.opt.cancel_approved_by.readable = False query = ((db.opt.is_active == True) & (db.opt.opt_cat_id == db. opt_cat.id)) grid = SQLFORM.grid( query, csv=False, deletable=False, details=False, fields=[ db.opt.id, db.opt.name, db.opt_cat.name, db.opt_cat.name_en, ], headers={'opt_cat.name': T('Category'), 'opt_cat.name_en': T( 'Category')}, links=[ lambda row: A( SPAN(T('Delete'), _class='buttontext button', _title= 'Delete'), _href=URL('get_approval', args=[row.opt.id], user_signature=True), _class='button btn btn-default btn-secondary', ), ], maxtextlength=GRID_COL_LEN_FOR_TEXT, ondelete=on_delete, # Grid only. onvalidation=on_validation, # Form only. orderby=db.opt.name, paginate=session.auth.user.pagination, # represent_none='', # Grid and view form only. ) If I select the Delete button (link) everything works as expected. If I select the auto-created Edit button, web2py returns this strange error ERROR:web2py:Traceback (most recent call last): File "C:\web2py\gluon\packages\dal\pydal\objects.py", line 107, in __getattr__ return self.__getitem__(k) File "C:\web2py\gluon\packages\dal\pydal\objects.py", line 94, in __getitem__ raise KeyError(key) KeyError: 'opt' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\web2py\gluon\restricted.py", line 219, in restricted exec(ccode, environment) File "c:\web2py\applications\ajc\controllers/opt.py", line 537, in <module> File "C:\web2py\gluon\globals.py", line 421, in <lambda> self._caller = lambda f: f() File "C:\web2py\gluon\tools.py", line 3868, in f return action(*a, **b) File "c:\web2py\applications\ajc\controllers/opt.py", line 245, in index paginate=session.auth.user.pagination, File "C:\web2py\gluon\sqlhtml.py", line 2583, in grid res = DIV(buttons(view=details, record=record), File "C:\web2py\gluon\sqlhtml.py", line 2505, in buttons elif link(record): File "c:\web2py\applications\ajc\controllers/opt.py", line 236, in <lambda> SPAN(str(row.opt.id) + T('Delete'), _class='buttontext button', _title= 'Dele te'), File "C:\web2py\gluon\packages\dal\pydal\objects.py", line 109, in __getattr__ raise AttributeError AttributeError If I comment the links parameter, the edit works. Thanks, JM -- 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.