Objects in transaction-Object do not support absolute_url() (was: Re: [Zope] Catch Object Changes)

Dieter Maurer dieter at handshake.de
Thu Dec 4 16:43:27 EST 2003


Casey Duncan wrote at 2003-12-4 14:08 -0500:
>On Wed, 3 Dec 2003 21:20:50 +0100
>Dieter Maurer <dieter at handshake.de> wrote:
>
>> Holger Schmidt wrote at 2003-12-3 19:28 +0100:
>[snip]
>> 
>>  > Is there a chance to get the path to the object?
>> 
>> In Zope3, but (I fear) not in Zope2.
>> 
>>   Zope3 abandons acquistion (or more generally: "context wrapper"s)
>>   and puts an explicit parent attribute in objects.
>> 
>> If you have control over the objects, you can emulate
>> Zope3 behaviour in some sense. E.g. you can code
>> the path in an attribute of the object (be carefull
>> with copy/move/rename).
>
>You could store the path as an _v_ attribute perhaps when the object is registered. That should alleviate problems with copy/move since _v_ attrs aren't persisted.

I do not think, it will work.

As a side effect how acquisition works, the registering objects
are unwrapped (if they are persistent objects and they register
automatically because they have been modified):

  Assigning to an object's attribute (or accessing an object's
  attribute) effectively works on "aq_base".
  This implies (among others) that the "self" of "__getattr__"
  and "__setattr__" are unwrapped.
  It also implies that (automatically) registered objects are unwrapped.

-- 
Dieter



More information about the Zope mailing list