[Grok-dev] Add forms - one object type to multiple object types

Darryl Cousins darryl at darrylcousins.net.nz
Sat Mar 10 23:36:09 EST 2007


Hi Kevin,


On Sat, 2007-03-10 at 18:14 -0800, Kevin Teague wrote:
> grok.context() declares what interfaces the View (or AddForm) can  
> adapt, so you do not have to pass it a Grok Component, instead you  
> can pass it an Interface. You can say that an AddForm can be adapted  
> to any object with;
> 
> from zope import interface
> 
> class AddPage(grok.AddForm):
>      grok.context(interface.Interface) #base interface, applies to  
> all objects
> 
> This will work fine, although technically you are stating that your  
> AddForm works for anything, when it will only actually work for  
> Container objects. You can specify that your AddForm works with just  
> Containers by doing:
> 
> from zope.app.container.interfaces import IContainer
> 
> class AddPage(grok.AddForm):
>      grok.context(IContainer) # base container interface, only  
> applies to container objects
> 

Cheers for that, I hadn't tried an Interface! I'd read 'object' in the
code - but of course an interface is an object too.

Regards,
Darryl



More information about the Grok-dev mailing list