[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