[Grok-dev] New Grok user with some questions

Kevin Teague kevin at bud.ca
Tue Jun 24 22:42:49 EDT 2008

> - I found some references about local utilities but no real  
> documentation about it. Is there some documentation or sample code  
> on how to use local utilities in Grok?

There is a small mention in the Official Grok Reference, but the  
reference isn't finsihed and published on the web site yet:


In the absence of documentation, the ftests and tests directories in  
the grok source package make for reasonable examples of how to do  
things. But asking questions on the list is also good, since it has a  
chance of prodding someone into documentating something :)

> - One of my main problems with ZODB is how to implement m:n  
> relations. I think most people comming from relational databases  
> have this problem and a short how-to would be quite helpfull.  
> Perhaps this would be a nice lighting talk on the Europython 2008? ;-)

lovely.relation (http://svn.zope.org/lovely.relation/) is AFAIK the  
best place to start for modeling many to many relationships (um, M:N  
to is many-to-many)? It's a Zope 3 package built on the lower level  
zc.relationship package. I've only gone far enough with this package  
to create a very simple relationship in Grok 0.12, but maybe once I've  
used it a bit more I'll write up a how-to - there is a fair bit of  
docs within the package itself as well. I set-up the necessary local  
utilites in my Grok app for this package with something like:

from zope.app.intid.interfaces import IIntIds
from zope.app.intid import IntIds
from lovely.relation.app import O2OStringTypeRelationships
from lovely.relation.interfaces import IO2OStringTypeRelationships

class TripBagger(grok.Application, grok.Container):
     grok.local_utility(IntIds, IIntIds)

More information about the Grok-dev mailing list