From my experience I find it better to derive from IFolder for the interface and Folder for the class. I can then set which objects are allowed or not allowed to be added based on the standard preconditions/IContained lines in the interface definitions. I set the schema to the primary interface of my class.


On Jan 22, 2007, at 1:06 AM, Roy Mathew wrote:

Hi Folks,

I am trying to create a custom Site object, using the below
declarations; all goes well when addding an object O1 to the QSite,
but when trying to delete object O1, I get:

  ForbiddenAttribute: ('__delitem__', <...QSite object at 0xa61dcd6c>)

The code:

  class IQSite(IPossibleSite):
    "custom site"

  class QSite(Folder, site.SiteManagerContainer):
    implements(IQSite)
    ...

  <class class=".qtmodule.QSite">
     <require permission="zope.View"
        interface="zope.app.container.interfaces.IReadContainer" />
     <require permission="zope.ManageContent"
        set_schema="zope.app.container.interfaces.IWriteContainer" />

<require permission="zope.Public" interface=".interfaces.IQSite" /> <require permission="zope.ManageContent" set_schema=".interfaces.IQSite" />
  </class>

Since both __setitem__ and __getitem__ belong to the same interface,
I am baffled - what gives?

--
Thanks,
Roy Mathew.
_______________________________________________
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


_______________________________________________
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users

Reply via email to