[Zope3-Users] __setitem__ works, __delitem__ fails on custom site
David Johnson
djohnson at jsatech.com
Mon Jan 22 05:37:50 EST 2007
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 at zope.org
> http://mail.zope.org/mailman/listinfo/zope3-users
>
More information about the Zope3-users
mailing list