[Zope-CMF] Classes whose instances appear in ZODB
Dieter Maurer
dieter at handshake.de
Wed Mar 8 14:15:30 EST 2006
George Lee wrote at 2006-3-8 10:17 -0500:
>If I want a class to appear in the ZODB, is that just a matter of
>subclassing SimpleItem?
Usually, classes do not "appear" in the ZODB -- just their instances.
"SimpleItem" is the base class of all (what I call) Zope site building
objects -- the term "Zope site building object" may correspond to
your "may appear in the ZODB".
Perhaps, you will find reading
<http://www.dieter.handshake.de/pyprojects/zope/book/chap3.html>
useful.
>What additional attributes do I need to set -- for instance, do I need
>to define 'meta_type' for the class?
"meta_type" is usually used in the so called "add list".
It should be a unique description of your object class such
that you are able to select the object from the add list
when you need it.
You use "ObjectManager._setObject(id, obj)" to put "obj" into
the "ObjectManager". Note, that you must also give "obj" the identical
"id". Otherwise, URL generation will break.
>Can a class be persistent but not have its instances appear in the
>ZODB
Yes.
You can instanciate a class deriving from "Persistent" without
the instance to actually get persisted. It only gets persisted
when you assign it to an attribute of a persisted object.
You may want to read the ZODB guide.
--
Dieter
More information about the Zope-CMF
mailing list