Rather than intercept the built-in view/edit links (which results in an unnecessary request due to the redirect), you might also consider removing them and instead use the "links" argument to create your own links/buttons for those functions.
Anthony On Friday, March 18, 2016 at 4:01:51 PM UTC-4, Jeff Riley wrote: > > Hello All, > > I am pulling my hair out. I am trying to redirect the view button on a > smartgrid. I can get the button to redirect to the view I want, but I > cannot parse the URL correctly to get the correct sheet id. > > Here is my controller > > @auth.requires_membership('manager') > def manage_customers(): > if 'new' in request.args: > if request.args(2) == 'customer': > redirect(URL('new_customer')) > elif request.args(4) == 'sheet': > redirect(URL('new_sheet', args=request.args(2))) > if 'edit' in request.args: > if request.args(4) == 'sheet': > redirect(URL('edit_sheet', args=request.args(2))) > if 'view' in request.args: > if request.args(4) == 'sheet': > redirect(URL('view_sheet', args=request.args(2,5))) > elif request.args(6) == 'sheet_archive': > redirect(URL('view_sheet', args=request.args(7))) > form = SQLFORM.smartgrid(db.customer, linked_tables=['address', > 'sheet', 'sheet_archive'], > searchable= dict(customer=True, > address=False, sheet=False), > editable= dict(customer=True, address=True, > sheet=True, sheet_archive=False), > deletable= dict(customer=True, address=True, > sheet=True, sheet_archive=False), > create=dict(customer=True, address=True, > sheet=True, sheet_archive=False), > paginate=20, maxtextlength=60, > fields=[db.customer.first_name, > db.customer.last_name, db.customer.phone, > db.customer.email, db.customer.handed, > db.address.address1, db.address.address2, > db.address.city, db.address.state_province, > db.address.postal_code, db.sheet.title, > db.sheet.created_by, db.sheet.created_on, > db.sheet_archive.id, db.sheet_archive.title, > db.sheet_archive.created_by, > db.sheet_archive.created_on],) > return dict(form=form, request=request) > > Here is my URL: > > > http://127.0.0.1:8000/manage_customers/customer/sheet.customer_id/1/edit/sheet/2?_signature=3b4a45778f06aec42421ef503cba968cd633269a > > > I can only get the customer_id and not the sheet #2. So I am always > displaying the first customer record and the first sheet record. SO LOST. > > -- 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.