[Zope] How do I eval a variable within the acquisition path?

Tim Nash thedagdae at gmail.com
Tue Aug 21 21:10:51 EDT 2007

Thank you, that is cool but it isn't what I was looking for. My fault.
It is hard to describe. This may be called an indirect variable

I want the form to ask for the type of animal (hippo? giraffe?) and
send it to a python script. No problem here. I can write the form and
most of the script that is called. But this is where I have the

The python script will use the name of the animal to go down into the
proper folder and call vaccinateplan() on all the items in that
folder. The key line in the python script is:

print context.Vet.category.animal.vaccinateplan()

That runs the vaccinateplan script on the folder which has a folder id
of either 'hippo' or 'girafee'. And it is in the folder named by the
variable category and in the folder named 'Vet'

There is no folder with the id of 'category' or 'animal'

I'm sorry my explanations are not clear. And I shouldn't have used the
hippo and girafee example from the zope book because that is doing
something a little different. Below is the directory structure I am
thinking of.

|       |
|        ----hippo
|        ----girafee
|---small Animal

On 8/21/07, Jonathan <dev101 at magma.ca> wrote:
> ----- Original Message -----
> From: "Tim Nash" <thedagdae at gmail.com>
> To: <zope at zope.org>
> Sent: Tuesday, August 21, 2007 7:17 PM
> Subject: [Zope] How do I eval a variable within the acquisition path?
> >I apologize for the question (the zope area of my brain must need
> > coffee) but I can't find the answer in the zope book or in any of the
> > scripts posted to the zope cookbook.
> >
> > I want to use a variable in a acquisition path.
> >
> > So for example, from the zope book on scripts, imagine that
> > vaccinateplan() printed out a specific animals vaccination plan.
> >
> > Now instead of saying 'LargeAnimals' and 'hippo' like so:
> >
> > print context.Vet.LargeAnimals.hippo.vaccinateplan()
> >
> > I want to do like this:
> >
> > category = REQUEST.form['category']
> > animal = REQUEST.form['animal']
> >
> > print context.Vet.category.animal.vaccinateplan()
> >
> >
> >
> > but I get an Attribute Error. How do I eval a variable within the
> > acquisition path?
> any items in a url after python script name will be placed into REQUEST.
> Example:
> if there is a python script called 'ptst' in the folder 'folderx'
> then the url:   www.xyz.com/folderx/ptst/a/b/c
> will result in the python script "ptst" being run and the following entry
> will be in REQUEST:
> traverse_subpath ['a', 'b', 'c']
> hth
> Jonathan

More information about the Zope mailing list