ZCatalog doesn't do well on hierarchical searches like this. The way
you're doing it (without some sort of change to your objects'
structures) is pretty much the only way. There's a "ZTopics" product
floating around that is supposed to provide functionality like this, but
1) I don't know if it's released, 2) I've never used it.
You *could* add a method to your "superobjects" that returned the
meta_type of all of its subobjects and add that to the Catalog index,
e.g.
def getChildMetaTypes(self):
return map(lambda x: getattr(x, 'meta_type'), self.objectValues())
then add getChildMetaTypes as a keyword index...
then...
for x in Catalog.searchResults(getChildMetaTypes="My Kind Of Object"):
...
[EMAIL PROTECTED] wrote:
>
> (Post #2)
> I'm trying to search a zCatalog to find all the objects containing a certain
> type of sub-object.
>
> Right now, I use a dtml-if inside the result loop, but the result count is
> obviously wrong.
>
> There must be a better way to do this, right?
>
> Jean-François Ménard
> Intranet DPAS
> Pratiques d'affaires et orientations
> * (514) 840-3000 poste 3939
> * (514) 840-5585
> * [EMAIL PROTECTED]
> * 855 Ste-Catherine est, 6e étage
> Montréal, Qué. H2L 4P5
>
> _______________________________________________
> Zope maillist - [EMAIL PROTECTED]
> http://lists.zope.org/mailman/listinfo/zope
> ** No cross posts or HTML encoding! **
> (Related lists -
> http://lists.zope.org/mailman/listinfo/zope-announce
> http://lists.zope.org/mailman/listinfo/zope-dev )
--
Chris McDonough
Digital Creations
Publishers of Zope - http://www.zope.org
_______________________________________________
Zope maillist - [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope
** No cross posts or HTML encoding! **
(Related lists -
http://lists.zope.org/mailman/listinfo/zope-announce
http://lists.zope.org/mailman/listinfo/zope-dev )