thanks Massimo,

but your answers just makes me more confuse ...

On 19-10-2010 02:06, mdipierro wrote:
> Mind that it is not a good idea to do this:
>
> URL("call", "run", "Set_Page", args="77" )
well this the exactly what the books says at page 396,
and it although I don't understand why "call" and "run" is needed,
(but I think it has something todo with services)
but it works.

> i.e. pass the application name. You want instead
>
> URL("run", "Set_Page", args="77" )
>
this is not in the book and it doesn't work (in my case) ;-)

here a small overview:
  LSB_Menu.append ( [ 'Stef1',  URL("run","Set_Page","77") ])  ## invalid 
request
 
  LSB_Menu.append ( [ 'Stef2',  URL("call","run","Set_Page","77") ])  ## 
internal error
  LSB_Menu.append ( [ 'Stef3',  "call/run/Set_Page/77"      ])  ## OK
  LSB_Menu.append ( [ 'Stef4',  URL("call/run/Set_Page/77") ])  ## OK
 
  LSB_Menu.append ( [ 'Stef3',  "run/Set_Page/77"           ])  ## invalid 
function
  LSB_Menu.append ( [ 'Stef5',  URL("run/Set_Page/77")      ])  ## invalid 
function

What am I doing wrong ?

thanks,
Stef
> else if the app is renamed the links break.
>
> On Oct 18, 6:52 pm, Stef Mientki <[email protected]> wrote:
>>  hello,
>>
>> I'm trying to call a service from menu buttons,
>> and I read somewhere in the manual, you should always use URL()
>>
>> Now this works:
>>   LSB_Menu.append ( [ 'Stef3',"call/run/Set_Page/77" ])
>>
>> But the following don't (while printing the URL result, looks ok), why ??
>>   #LSB_Menu.append ( [ 'Stef4',URL("call", "run", "Set_Page", args="77" ) ])
>>   #LSB_Menu.append ( [ 'Stef5',URL("call", "run", "Set_Page", vars="77" ) ])
>>   #LSB_Menu.append ( [ 'Stef5',URL("call", "run", "Set_Page", "77" )])
>>
>> # this is the service
>> from gluon.tools import Service
>> service = Service(globals())
>> def call():
>>   return service()
>> @service.run
>> def Set_Page(Nr):
>>   return dict ( m='aap',b=99,c=Nr)
>>
>> thanks,
>> Stef Mientki

Reply via email to