[Grok-dev] Re: grok.Skin question.

Jan-Wijbrand Kolman janwijbrand at gmail.com
Fri Jul 25 02:37:08 EDT 2008

Fernando Correa Neto wrote:
> But then when you declare your skin naively like this:
> class MyGrokSkin(grok.Skin, IDivFormLayer):
>     grok.name('youwhish')
>     grok.layer(MyGrokLayer)
> It is raises a conflict error like this:
> zope.configuration.xmlconfig.ZopeXMLConfigurationError: File
> "/Users/fcorrea/grokapps/grokenv/z3cformtest/parts/app/site.zcml",
> line 4.0-4.33
>     ZopeXMLConfigurationError: File
> "/Users/fcorrea/grokapps/grokenv/z3cformtest/src/z3cformtest/configure.zcml",
> line 5.2-5.27
>     TypeError: Error when calling the metaclass bases
>     metaclass conflict: the metaclass of a derived class must be a
> (non-strict) subclass of the metaclasses of all its bases

I think you got confused (as I am constantly as well) by the way Grok 
wants you to register skins. See the thread I started at:


I think *for* now you'd have to do:

  class AggregationOfAllSkinsIWanted(IDivFormLayer):

  class MyGrokSkin(grok.Skin): # This will merely trigger a registration.

kind regards,

More information about the Grok-dev mailing list