[Zope3-Users] Views for adapted components
tom at lalisio.com
tom at lalisio.com
Mon Mar 26 08:58:28 EDT 2007
On Monday 26 March 2007 12:57:58 pm FB wrote:
> Hi,
>
> On Mon, Mar 26, 2007 at 12:43:21PM +0200, Lorenzo Gil Sanchez wrote:
>
> [snip]
>
> > This is not so bad. The real problem is that I have to modify the
> > original IMyCompoment component to tell zope it implements IImportExport
> > even when this is false. The adapter does it, not the compoment. But I
> > don't know other way to make my view work with my components.
>
> What you trying to do sounds reasonable at the first moment, but it would
> be impossible to accomplish. You try to create an (warning: self invented
> expression :-) ) Adaption chain:
>
> object -> some_adapter -> view
>
> which is something, zope doesn't support. Think about it: the publisher
> would have to check each possible adapter for a given object trying to
> create views for it - and this is just a 2-adaption-chain... .
>
> However, there's an easy solution: Write a view like that:
>
> <page name="im-and-export.html"
> for="zope.app.container.interfaces.IContained"
> [...]
> class=".view.ImExPortView"
> menu="zmi_views"
> title="Im-&Export"
> />
>
> class ImExPortView(object):
> def __call__(self):
> try:
> export=IImportExport(self.context)
> except:
> raise NotImportableException(self.context)
> [...]
>
Another way to do this, if you don't like exceptions is
(in your view):
adapter = IImportExport(self.context, None)
if adapter is not None:
.... do something
else:
.... raise an exception or do something other
Cheers
-Tom
> Regards,
>
> Frank
> _______________________________________________
> 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