[Zope] Newbie Questions - many-many relationships? Zope 2 or 3?

Jim Vine jim_a_vine at yahoo.co.uk
Sat Jul 2 07:33:13 EDT 2005


Hi,

I hope it's not considered "bad form" to answer ones
own questions on this board, but I think I've got it
sussed.

Reading through the ZWiki source from
http://svn.zope.org I noticed the following line in
the implementations:

from zope.app.container.contained import Contained 

I added this to mine, and it has cleared up the error
a treat.

Thanks,
Jim

PS - In scrabling around the net trying to solve this
I read somewhere (I think it was a Python Tutorial)
the following advice:

"Use the source" (Luke...)

I can strongly recommend to any other newbies looking
for examples to take a look at to try out ZWiki - it's
got a reasonably small number of interfaces and
classes, so you can get your head around it, and it
covers useful things like containment.

--- Jim Vine <jim_a_vine at yahoo.co.uk> wrote:

> Hello again,
> 
> So, following the recommendations from the board I
> have settled on "route 3" - developing a Python
> Product, using Zope 3. I've been refering a lot to
> the
> Zope 3 Book (particularly chapter 13 onwards) and
> have
> progressed somewhat.
> 
> I've created a "PropertyFolder" class, which can
> hold
> Property obects, and following the example in the
> book
> I've been able to make it hold *only* Property
> objects.
> 
> My "Property" class is proving a little more
> difficult, however. When I've tried to make it along
> the same lines as the "message" class in the book, I
> run into difficulties - it seems to be some sort of
> problem with inheriting from multiple classes /
> interfaces. My workaround has been that I can
> include
> my __setitem__.precondition within the main
> IProperty
> interface, and make that subclass from IContainer
> instead of Interface. This works for me, because I'm
> not going to want Property objects to contain other
> Property objects, but I really haven't been able to
> track down why it should work for the message board,
> but not for my classes / interfaces. The errors I
> was
> getting before my work around seemed to be
> indicating
> that it wasn't a container, although I was
> subclassing
> BTreeContainer, and implementing three interfaces
> (one
> and Interface, one and IContained, and one
> IContainer).  Mostly this presented itself as Zope
> complaining about using __len__ on the object. (As I
> say, I have worked around this, and mention it
> mostly
> in case it sheds any light on the issue below...)
> 
> My current problem, however, is proving harder to
> work
> around. I want my Property objects to be able to
> contain Images, and sets of attributes. (A typical
> set
> of attributes would describe what is in the
> kitchen).
> I have created interfaces IAttribSet(Interface),
> IAttribSetContainer(IContainer) and
> IAttribSetKitchen(IAttribSet); and classes AttribSet
> (implements IAttribSet and IAttribSetContained) and
> AttribSetKitchen (implements IAttribSetKitchen). I
> am
> using IAttribSetContained to create a __parent__
> ContainerTypesConstraint. I have wired up the
> kitchen
> attrib set in .zcml files.
> 
> When I 'turn off' implementing IAttribSetContained,
> my
> kitchen attrib set is working fine, in that I can
> add
> it anywhere, and edit it. However, when I try to add
> a
> condition saying where it can go (i.e. I only want
> it
> to be within Property objects) it correctly only
> appears as an Add-menu item within Property objects,
> but on adding it, I get an error, saying
> "AttribSetKitchen instance has no attribute
> '__parent__'". My Property and PropertyFolder
> objects
> are implemented as BTreeContainers.
> 
> I'm really quite stumped by this, so I would
> appreciate any guidance that could be provided on
> tracking down the source of the errors.
> 
> Thanks,
> Jim
> 
> 
> 
> --- Lennart Regebro <regebro at gmail.com> wrote:
> 
> > On 6/22/05, Jim Vine <jim_a_vine at yahoo.co.uk>
> wrote:
> > > I think I've convinced myself that the
> complexity
> > of
> > > my app takes it beyond method 1, but I'm
> strugling
> > to
> > > get my head around the implications of selecting
> > > method 2 or 3. Am I right in thinking that
> either
> > of
> > > these will result in my building a "Product"? 
> > 
> > Yes.
> > 
> > > If I
> > > want to add extra feature to my product on the
> > > development server and then port them to the
> live
> > > server (with all the data on the live server
> being
> > > left in tact), will selection of either of these
> > > particularly help or hinder me in this?
> > 
> > I don't know, because when I tried 2., it turned
> out
> > to be quite
> > complicated, and I never understood how to do it.
> So
> > I did 3. And
> > afterwards I have realized that even if you do
> > understand how to do 2,
> > the fact that you do most of your stuff in the
> > restricted python
> > scripts and dtml or ZPT, means that you have tons
> of
> > limitations to go
> > around.
> > 
> > In addition to that, you can't easily use any
> proper
> > editors to edit
> > the code, which is very annoying.
> > 
> > Method 2 (aka ZClasses) simply seem to offer
> exactly
> > zero benefits,
> > and loads of drawbacks.
> > 
> > Also, as mentioned earlier, unless you want to
> build
> > your application
> > on top of one of the Zope2 content management
> > systems around (CPS,
> > Plone, Silva, ...) you probably want too use Zope3
> > for your
> > application development anyway. And then only
> method
> > 3 (disk based
> > development) is available.
> > 
> > -- 
> > Lennart Regebro, Nuxeo     http://www.nuxeo.com/
> > CPS Content Management    
> > http://www.cps-project.org/
> > _______________________________________________
> > Zope maillist  -  Zope at zope.org
> > http://mail.zope.org/mailman/listinfo/zope
> > **   No cross posts or HTML encoding!  **
> > (Related lists -
> > 
> http://mail.zope.org/mailman/listinfo/zope-announce
> >  http://mail.zope.org/mailman/listinfo/zope-dev )
> > 
> 
> 
> 
> 		
>
___________________________________________________________
> 
> How much free photo storage do you get? Store your
> holiday 
> snaps for FREE with Yahoo! Photos
> http://uk.photos.yahoo.com
> _______________________________________________
> Zope maillist  -  Zope at zope.org
> http://mail.zope.org/mailman/listinfo/zope
> **   No cross posts or HTML encoding!  **
> (Related lists - 
>  http://mail.zope.org/mailman/listinfo/zope-announce
>  http://mail.zope.org/mailman/listinfo/zope-dev )
> 



	
	
		
___________________________________________________________ 
Yahoo! Messenger - NEW crystal clear PC to PC calling worldwide with voicemail http://uk.messenger.yahoo.com


More information about the Zope mailing list