[ZPT] Re: calling ZPT from script python - problem
Tonico Strasser
contact_tonico at yahoo.de
Tue Jun 21 09:04:47 EDT 2005
Kenneth Gonsalves schrieb:
> On Monday 20 Jun 2005 5:26 pm, Tonico Strasser wrote:
>
>>Kenneth Gonsalves schrieb:
>>
>>>hi
>>>i am having a very weird experience. I have a page template
>>>called manageheads. This requires a parameter called
>>>'companyname' to be passed to it. I access this option as:
>>>python:somefunction(companyname=options['companyname'])
>>>when i call the ZPT from the web like so:
>>>http://.../manageheads?companyname=nameofcompany
>>>it works
>>
>>Are you shure this works? Did you redefine 'options' somewhere?
>>
>>
>>>but if i call it from a python script like so:
>>>return manageheads(companyname=nameofcompany)
>>>it complains saying
>>>key error 'companyname'
>>
>>It should simply work.
>>
>>
>>>The weird thing is that i have several similar ZPTs where this
>>>call from python scripts work perfectly in the same zope
>>>instance. So why not in this one? any clues?
>>
>>Maybe you did redefine 'options' in your template.
>
>
> options has not been redefined anywhere. The problem appears to be in
> the way to call a particular python script
>
> this is a bit long, but interesting nevertheless -:)
>
> the variable in question is 'compname' which is either
> request['compname'] or options['compname'] depending on how the ZPT
> is called (from web it goes to 'request' and from script in goes to
> 'options')
>
> This is the script:
>
> callheadtree.py
> parameter list: compname
>
> theads=context.getheadleafs()
> heads=[]
> for k in theads:
> heads.append(k['id'])
> htree=context.getheadtree(compname=compname,id=1,name='chart',ret=[],heads=heads)
> headtree=[]
> for k in htree:
> headtree.append({'name':k})
> return headtree
>
> when tested using the test tab it works
> when the originating ZPT is called from the web using '?' notation it
> works
> when called from the following script:
>
> onetest.py
> names=callheadtree(compname='testcompany')
> return names
>
> it gives a Keyerror 'compname'
>
> when the originating ZPT is called from a script:
>
> it gives a Keyerror 'compname'
Ok, you've got a KeyError, but where? Traceback?
Tonico
More information about the ZPT
mailing list