[Zope-dev] ZPatterns: persistant objects hold DataSkin-Items -> KeyError: _v_dm_

Phillip J. Eby pje@telecommunity.com
Wed, 13 Dec 2000 12:55:37 -0500


At 06:31 PM 12/13/00 +0100, Ulrich Eck wrote:
>after one more day of source-code-reading i got that far:
>
>When I want to use a Folder /w Customizer (FwCS) I cannot/don't need to use
>Specialists.

Not to store your objects, no.  You can still use Specialists to
concentrate search methods, constructors, UI snippets, and the like.
Typically, in that configuration some of your Specialists may contain (or
be) ZCatalogs which index selected objects from your FwCS hierarchy.


>i create a FwCS and put my 'Framework' in it.
>if i want to access (get/new) an object handled by a customizer
>i can ask FwCS._getDataManagerFor(client,default) for my datamanager (DM)

Not necessary.  If you retrieve your DataSkin as an attribute of its
container, the DataSkin __of__ method will automatically find and bind the
DataManager (assuming you're not using some class that overrides __of__).


>Do I need to implement methods like
>createItem/retrieveItem/_v_itemConstructor as well
>or how do i "get" my objects ??

Just retrieve the objects from their containers in the normal Zope way.
Ditto for creation - use the standard way of constructing objects in an
ObjectManager.


>If I have an object whose metatype is handled via
>customizer/skinscript/sqlmethod it'll
>probably work managing attributes ..

Yes, it should.  Likewise triggers, if you want to set up cataloging triggers.


>I'm searching for something that handles a newItem(<meta_type>,key) function
>that is provided
>from the FwCS who decides which object-type is created and gets those
>attributes from the customizer

Just use the normal Zope "add list" to create one manually, or call the
appropriate constructors (e.g. SomeZClass.createInObjectManager()).


>is there an example those newItem(<meta_type>,key) -
>getItem(<meta_type>,key) ??

You want examples?  You forget, this is ZPatterns.  ;)  Seriously, look for
examples of how to create an object by meta_type in a Zope ObjectManager.