With joins, you have to specify the ID field explicitly: SQLFORM.grid(..., field_id=db.applics1.id)
Anthony On Monday, November 19, 2018 at 4:48:14 AM UTC-5, Francis Windram wrote: > > Hi All, > > I'm hitting an issue with the selectable field in SQLFORM.grid. > > I have a controller including a grid generated from a join on three tables > as follows: > > applics_fields = ['first_name', 'last_name', 'email', 'rank', 'nerc_elig', > 'cv', 'coverletter', 'refletter1', > 'refletter2'] > proposals_fields = ['project_title', 'case_partner'] > pi_fields = ['first_name', 'last_name'] > fields_to_select = [db.applics1[field] for field in applics_fields] + > \ > [db.proposals[field] for field in proposals_fields] > + \ > [db.PIs[field] for field in pi_fields] > > grid = SQLFORM.grid((db.applics1.project == db.proposals.id) & (db. > proposals.PI_name == db.PIs.id), > csv=False, > deletable=False, > create=False, > details=False, > editable=False, > fields=fields_to_select, > headers={'PIs.last_name': 'PI Last Name', > 'PIs.first_name': 'PI First Name'}, > selectable=[('Download Public PDFs', lambda ids: > zip_pdfs(ids, track=1))], > paginate=False) > > This generates the correct grid in the view, however when I select the > records I want to pass to zip_pdfs(), the ids passed to the function are > those of the PI table, not of the applics1 table. > > Is there a way to specify from which table it pulls the ids to be selected > and passed to zip_pdfs()? > > Thanks, > Francis > -- 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.