[Zope] How to set property from external method or pythonscript?

Jonathan dev101 at magma.ca
Fri May 5 07:10:37 EDT 2006


----- Original Message ----- 
From: "Jaroslav Lukesh" <lukesh at seznam.cz>
To: <zope at zope.org>
Sent: Friday, May 05, 2006 1:02 AM
Subject: [Zope] How to set property from external method or pythonscript?


> HI all,
>
> External methods and pythonscripts are fine, but I did not find how to set
> some property or bulk of properties to use in dtml document after calling
> this ext.method or pythonscript. The passing variables I was find for
> pythonscripts only.
>

If you are looking for ways to access property fields from dtml here are a 
few examples that may help. This was extracted from a 'quick-and-dirty' 
utility which loads a property field with data to create a 'legal-list' - 
the legal-list does not change once created (aside from some initial 
debugging!). If you are going to access property fields on a more frequent 
basis it would be better to use python scripts or external methods:


--check for property field and if it does not exist create it:

<dtml-if "not coup.hasProperty('provinces')">
  <dtml-call "coup.manage_addProperty('provinces', '', 'string')">
</dtml-if>


--update contents of the property field (in this case we are storing a 
pre-loading python dictionary):

<dtml-call "coup.manage_changeProperties({'provinces':aDict})">


--access contents of a property field (which in this case is a python 
dictionary):

<dtml-let etypes="coup.getProperty('provinces')">
  <dtml-in "etypes.keys()" sort>
    <dtml-var sequence-item> - <dtml-var "etypes[_['sequence-item']]"><br>
  </dtml-in>
</dtml-let>


hth

Jonathan 



More information about the Zope mailing list