[Zope] PythonScripts and REQUEST, RESPONSE objects

Kevin Teague kevin@bud.ca
Wed, 07 Mar 2001 01:52:37 -0800


The REQUEST object can be accessed from the bound names context and
container in a Python Script. For instance, if you passed a Python Script
the Form variable foo, you could access it like so:

  print "Foo is " + context.REQUEST['foo']
  print "An object of type %s named %s called a script named %s." %
(context.meta_type, context.id, script.id)
  print "This script lives in the folder " + container.id
  return printed

The RESPONSE object is part of the REQUEST object and could be called like
this:

  context.REQUEST.RESPONSE.redirect('http://www.zope.org')


> whenever a pythonscript needs to invoke objects like REQUEST or RESPONSE, I
> have to put those objects at the paramter list and then, when invoking the
> pythonscript I have to pass those objects to it.
> 
> This brings me 2 problems:
> the syntax is much longer, instead of having:
> <dtml-var MyMethod>
> I have to type now:
> <dtml-var "MyMethod(RESPONSE=RESPONSE , REQUEST=REQUEST)">
> 
> the other problem is that from now on this object requires to be called from
> a dtml-method (because it needs these RESPONSE and REQUEST objects as
> parameters)
> 
> is there a cleaner solution than doing this?

Yup :)

Kevin Teague
http://www.bud.ca