* Dario Lopez-Kästen <[EMAIL PROTECTED]> [2004-06-17 19:55]:
> [ resend - never got to the list ]
> 
> Dieter Maurer wrote:
> >Your problem can be summarized by "storing acquisition wrappers
> >(of persistent objects) across requests".
> >
> <...>
> >You cannot store them in the ZODB as acquisition wrappers cannot
> >be stored there. Currently, the ZODB silently unmantles
> >acquisition wrappers. They may be rebound on access -- but
> >this will not give you the original acquisition context and
> >behaviour can be drastically different.
> 
> hello, again,
> 
> I have rearranged in my product now, so that I pass along dictionaries
> to populate the classes and using a cmf-tool to provide the interface
> for the various methods of the classes.
> 
> I am returning objects wrapped in __of__(self), ie.
> 
>    class Person(Acquisition.Implicit):
>       def __init__(self data):
>           ...
> 
>    PersonObject = Person(data).__of__(self)
>    return PersonObject
> 
> If I want to pickle, store and later reuse PersonObject, I suspect that
> this also creates a similar to my original one, where I wanted to store
> ZODB-references in the PersonObject.
> 
> 
> So should I, when pickling and storing the PersonObject, store
> 
>   PersonObject.aq_base
> 
> rather than just PersonObject?

No, because the ZODB already strips acquisition wrappers - like Dieter
pointed out above. You only have to make sure that you wrap objects in
the original acquisition context when you retrieve them.

-- 
Roché Compaan
Upfront Systems                 http://www.upfrontsystems.co.za

_______________________________________________
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )

Reply via email to