[Zope3-Users] querying the catalog
Duncan McGreggor
duncan.mcgreggor at gmail.com
Mon Oct 3 13:45:24 EDT 2005
On Oct 3, 2005, at 8:11 AM, Gary Poster wrote:
> Hi Duncan. I tried following up on some of the later replies, but I
> think it's easier to reply to your first email.
>
> I think that what is tripping you up is the idea of registration names
> versus container names.
>
> You can put a utility in any site package, and call it whatever you
> want. This will not register it at all, let alone for any given name.
>
> What you need to do next is to actually register the utility with the
> placeful (i.e., local to a site in the ZODB, not global in memory)
> site manager, so the component architecture will find it. When you
> register it, you provide another name, unrelated to the first, that is
> the *registration* name.
>
> For instance, if I create a catalog in a site manager in the default
> package, I might call it 'site_catalog'). After creation, so far the
> only way I can address it is by walking to it through the ZODB (say,
> with the container API, or with traversal as you found). I next need
> to register this catalog to perform the role of ICatalog in the site.
> I can provide a name or not, for this registration; whatever name I
> use is the name that will be used for lookup with a getUtility or
> queryUtility call.
>
> See
> http://mail.zope.org/pipermail/zope3-users/2005-September/001078.html
> for my attempt at detailed instructions.
On Oct 3, 2005, at 8:15 AM, Jim Fulton wrote:
> Duncan McGreggor wrote:
>
>> When I created it, I set "register as" to "accumac_catalog". Based on
>> the experience you shared, I deleted my catalog and did not give it a
>> name upon creation. zapi.getUtility(ICatalog) now works, as it gets
>> the "sub-site's" catalog in the accumac/++etc++site/default
>> directory.
>> Very strange. If I understood this more, or if there was expert-aided
>> interest, I would troubleshoot this. It may not be a bug, but there
>> at least seem to be issues of an anti-intuitive nature here...
>> Alen, thanks again for your assistance in this matter :-)
>
> I suspect there was a problem of some sort with your original
> registration.
> We normally use named local catalogs and haven't had a problem.
>
> BTW, you should not pass the "context" argument to the component-lookup
> functions *unless* you want to find a component in a different site.
Gary and Jim, thank you both for your feedback. After playing with the
catalogs some more, and based on the information that Gary provided I
am sure you are correct, Jim. And thanks for the tip on the contect!
d
More information about the Zope3-users
mailing list