Ok, I figured it out, I can include db.submission.contest_id among the fields, and before calling SQLGRID.form, do db.submission.contest_id.readable = False
Luca On Friday, December 21, 2012 12:42:37 PM UTC-8, Luca wrote: > > I have a problem using SQLFORM.grid and its fields option. > fields= enables me to specify which fields to retrieve from the db, and > those fields are then displayed to the user. > The problem is, I would like to read from the database also some > additional fields, which are NOT displayed to the user, but that can be > used in generating links. For instance, I would like this code to work. > Notice how I am not including db.submission.contest_id in the fields, but > I would like to use it in the links (hence, this code is currently broken). > > Is there a way to do this? Shall I implement in web2py a new optional > parameter for SQLFORM.grid called extra_fields? > Many thanks! --Luca > > grid = SQLFORM.grid(q, > fields=[db.submission.id, db.submission.date], > csv=False, details=False, create=False, editable=False, > user_signature=False, > args=request.args[1:], > links=[ > dict(header=T('Contest'), body = lambda r: > A(T('Contest'), _href=URL('contests', 'view_contest', > args=[r.contest_id]))), > dict(header=T('Submission'), body = lambda r: > A(T('submission'), _href=URL('submission', > 'view_own_submission', args=[r.id]))), > dict(header=T('Feedback'), body = lambda r: > A(T('feedback'), _href=URL('view_feedback', args=[r.id > ]))), > ], > ) > > --