[Zope-dev] Accessing root object

Loren Stafford lstaffor@dynalogic.com
Thu, 17 Feb 2000 22:33:41 -0800


I can't figure out the opposite angle on this. In __init__.py, my product
creates a root-level object named 'S' with Martijn's method below. Now
another module 'D'  needs to look up 'S' and get a reference to the object
so it can call one of its methods "S.next". But I don't see how to look up
'S'. I'm sure I'm just being dense. Can somebody help?

-- Loren


> > From: Robert Sander [mailto:zope-dev@beteigeuze.cs.tu-berlin.de]
> >
> > On Thu, Feb 10, 2000 at 03:40:38PM -0000, Phil Harris wrote:
> > > I think there's something  called app?
> > >
> > > It's declared in <zopedir>/lib/python/Main.py.
> > >
> > > That may be what your looking for??
> >
> > I don't know, the object app is not in the global namespace
> > when __init__.py
> > of my Product is called.
> >


>From: Martijn Pieters <mj@digicool.com>

> Here's what I'd do (in __init__.py):
>
>   def initialize(context):
>       app = context._ProductContext__app # Don't you love private name
> mangling
>       if not hasattr(app, #IdForObject#):
>           object = Object()
>           app._setObject(#IdForObject#, object)
>           get_transaction().note('Added Object')
>           get_transaction().commit()
>
> context._ProductContext__app is the root object. #IdForObject# is a
> string ID for the object.
>
> --
> Martijn Pieters, Software Engineer
> | Digital Creations http://www.digicool.com
> | Creators of Zope      http://www.zope.org
> | mailto:mj@digicool.com       ICQ: 4532236
> | PGP:
> http://wwwkeys.nl.pgp.net:11371/pks/lookup?op=get&search=0xA8A32149
> -------------------------------------------
>
> _______________________________________________
> Zope-Dev maillist  -  Zope-Dev@zope.org
> http://lists.zope.org/mailman/listinfo/zope-dev
> **  No cross posts or HTML encoding!  **
> (Related lists -
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope )
>