[Zope] Updating ZClass instance properties
Alexandre Ratti
ratti@dial.oleane.com
Mon, 25 Oct 1999 20:27:35 +0200
Thanks Kevin for your suggestion. So far the updating method doesn't belong
to the ZClass ; I'll change that because it makes more sense anyway.
In the meantime, I've tried several syntactic variants with no luck. I
still cannot access the class instance object from this method.
I also tried <dtml-with "REQUEST._[id]"> and I get an Unauthorized error
instead of my usual propertysheet-not-found error. This is strange, because
I'm superuser.
However, the following code works fine, thought it's kludgy ('news' is the
folder name):
<dtml-in "news.objectValues(['News'])">
<dtml-if "id()==REQUEST.id">
<dtml-call
"propertysheets.InstanceConstants.manage_changeProperties(REQUEST)">
<dtml-call reindex_object>
</dtml-if>
</dtml-in>
Looks like I can access the object indirectly but I cannot access it with
<dtml-with REQUEST.id> or similar constructs.
Cheers.
Alexandre
At 16:34 24/10/1999 -0400, Kevin Dangoor wrote:
>-----Original Message-----
>From: Alexandre Ratti <ratti@dial.oleane.com>
>To: zope@zope.org <zope@zope.org>
>Date: Sunday, October 24, 1999 4:21 PM
>Subject: [Zope] Updating ZClass instance properties
>
>
> >I'm trying to update the properties of a ZClass instance based on
> >information entered in a form. The form calls a method where the updating
> >is carried out.
> >
> >The updating code looks like this:
> >
> ><dtml-with "myObject">
> > <dtml-call
> >"propertysheets.InstanceConstants.manage_changeProperties(REQUEST)">
> > <dtml-call reindex_object>
> ></dtml-with>
>
>Assuming that your update method is a method of the ZClass (ie it is on the
>ZClass Methods tab and you can access it by going to
>http://yoursite.com/Instance/Method), then you don't need to do a dtml-with.
>Since you're calling the method on the instance object specifically, Zope
>knows which object you're trying to use. So, assuming your propertysheet is
>called InstanceConstants, then all you need to do is:
>
><dtml-call
>"propertysheets.InstanceConstants.manage_changeProperties(REQUEST)">
><dtml-call reindex_object>
>
>The REQUEST['id'] thing is just used when you're adding the object in the
>first place, because at that time you need to define the id for the new
>object. Since methods are invoked on specific objects, you don't need to
>specify the id.
>
>Kevin