On Nov 5, 2010, at 12:18 PM, Richard Vézina wrote:
> Try this!
> 
> table.id.represent = lambda id: \
>        A('Edit',_href=URL(r=request,f='FUNCNAME',args=('TABLE',id)))

That's going to have the same problem, since in villas's example, both FUNCNAME 
and TABLE are 'mytable'.

My earlier suggestion is to change this:

        SQLTABLE(mytablerows,linkto=URL())

to something like this:

        SQLTABLE(mytablerows, linkto=lambda rep,t,tn: URL(r=request, 
args=[rep]))




> On Fri, Nov 5, 2010 at 3:11 PM, villas <villa...@gmail.com> wrote:
> @Jonathan
> I think you are right about the /<function>/<table>/<id> convention
> for SQLTABLE linkto.
> But by using linkto=URL() I should be able specify whichever URL I
> want rather than have to work around an unnecessary convention?
> 
> @Richard
> I played around a little,  but I couldn't make that work for me, but
> maybe I'm missing something.
> 
> On Nov 5, 6:33 pm, Jonathan Lundell <jlund...@pobox.com> wrote:
> > On Nov 5, 2010, at 11:00 AM, villas wrote:
> >
> >
> >
> > > Does SQLTABLE  linkto work properly?
> >
> > > If I use:
> > > SQLTABLE(mytablerows,linkto=URL())
> >
> > > I get URLs  like this:   myapp/default/mytable/mytable/id
> >
> > > Note the duplication of "mytable".
> >
> > I wonder if this is really a "duplication". As web2py interprets a URL, the 
> > first mytable is a function name, and the second (in this case) is a table 
> > name, right? They happen to have the same name here.
> >
> > (That said, SQLTABLE's linkto logic is distinctly non-trivial; I'm not at 
> > all sure what's going on in several of the cases.)
> >
> > > I have tried with URL('mytable')  and URL(f='mytable'),  but it's the
> > > same.
> >
> > > Of course I can work around the issue specifying:
> > >    db.mytable.id.represent = lambda id:
> > > A('edit:',id,_href=URL(args=(id)))
> >
> > > ...which gives the URL that I expect,  but that is not the question
> > > here...
> >
> > > --D
> >
> >
> 


Reply via email to