[Zope] Calling Python script from ZPT - Solution
Bart Hubbard
bart at barthubbard.com
Wed Sep 3 10:03:54 EDT 2003
Whoops! Good point. I had edited my question many times w/o changing the title. My real situation is a little more
complex than the question I'd posed. What I'm really doing is trying to do in ZPT what I was doing in a DTML doc. I
also wanted to clean up my design by moving the logic to my script.
My script finds an object fine, but I couldn't get it to execute a method properly that the object contained. Thanks to
Peter Sabaini's hint, I have it working now. I now have the script explicitly setting the context before attempting to
execute the method. The updated test script now works great, and is (no error handling in there, yet):
import random
# Get content catalog and search for an object using the args
# and the current date/time
zcat = context.content.Catalog
results = zcat(category=findCat, meta_type=findType, publishDateRange=DateTime())
# Pick one content object at random
item = random.choice(results).getObject()
# Prepare to call the view method on the content object
dtml_method = item.view
REQUEST = context.REQUEST
# Call the method in the context of that item and return the results
retVal = dtml_method(client=item, REQUEST=REQUEST)
return retVal
Next I plan to allow various 'views' to be requested from the script based on an argument, as well. Then I'll have a
good script to use in my ZPTs to request the various types of content I have indexed.
Thanks for the help,
bart
> -----Original Message-----
> From: Chris Withers [mailto:chrisw at nipltd.com]
> Sent: Wednesday, September 03, 2003 8:15 AM
> To: Bart Hubbard
> Cc: zope at zope.org
> Subject: Re: [Zope] Calling Python script from ZPT
[...]
>
> Why the ZPT title?
>
> If you were using ZPT you probably wouldn't have the problem ;-)
[...]
More information about the Zope
mailing list