Mark Ferguson wrote:
The whole point of my question was about getting parameters from the REQUEST object into Python scripts, so perhaps if I restate the example -
I've got a DTML Document called hDoc: <form action="./hDoc" method="POST"> Name: <input type="text" name="name" value=""> <input type="submit" value="Submit"> </form> <dtml-if "REQUEST.get('REQUEST_METHOD') == 'POST'"> <dtml-var hello> </dtml-if>
and a Python script - return "Hello %s!" % name
According to the Zope Bible book this should work, but it doesn't. If I mod the DTML to -
<form action="./hDoc" method="POST"> Name: <input type="text" name="name" value=""> <input type="submit" value="Submit"> </form> <dtml-if "REQUEST.get('REQUEST_METHOD') == 'POST'"> <dtml-var "hello(REQUEST.get('name'))"> </dtml-if>
It works as expected. So the question is, I am doing something wrong or is the book wrong?
The PythonScript automagically-turn-request-parameters-into-script-parameters feature only works when you directly request a Python script. But if you make your script this it will work:: return "Hello %s" % context.REQUEST.name It shares the same REQUEST object, as you expected. Notice that the script, besides accepting parameters, can also get the acquisition context and the DTML namespace (if called from DTML), so there's usually no need to use the REQUEST as a way to pass data around. --jcc -- "My point and period will be throughly wrought, Or well or ill, as this day's battle's fought."