[Zope] Passing parameters from python to dtml objects..

Tom Jenkins tjenkins@devis.com
31 Oct 2001 11:05:53 -0500


On Wed, 2001-10-31 at 09:26, Shane O'Sullivan wrote:
> hi all,
>         I am currently working on a python script that is called from a
> dtml method. It performs some logic and then calls another dtml method.
> I am passing 2 parameters into the python script, "hidden_photo" and
> "photo_name"..my python script looks like this...
>  
> if photo_name == ' ':
>    if hidden_photo == ' ':
>       return context.scReport(context)
>    elif hidden_photo == 'None':
>       return context.scReport(context)
>    else:
>       return context.Thumbnails.deletePhoto(context)
>       return context.scReport(context)
> elif photo_name =='None':
>      return context.scReport(context)
> else:
>      return context.Thumbnails.photoAction(context)
>      return context.scReport(context)
> 
> The methods photoAction and deletePhoto need to be passed the parameters
> "hidden_photo" and "photo_name" - however it dosn't seem to be getting
> them properly- this is the error message
> Error Type: NameError
> Error Value: global name 'photo_name' is not defined
>  
> Can anyone tell me how properly to pass parameters from python to dtml
> objects?
>  
> Thanks in advance,
> Shane
> 

first, get acquainted with www.zopelabs.com which has all sorts of user
submitted recipes.  

second (from http://www.zopelabs.com/cookbook/992031125 ) the proper way
to call dtml from python scripts is:

dtmlMethod(context, context.REQUEST)

# or if _ is bound to the (Script) Python in the bindings tab

dtmlMethod(context, _)

third if you pass keyword arguments to a dtml method they will be
available for use in the dtml method.  so you should call your dtml with

context..ThumbNails.deletePhoto(context, context.REQUEST,
hidden_photo=hidden_photo, photo_name=photo_name)

HTH

-- 

Tom Jenkins
Development InfoStructure
http://www.devis.com