[Zope] Clarification: uncatalog_object question

Jonathan Hobbs toolkit at magma.ca
Fri Jul 2 13:00:50 EDT 2004


Typo in dtml-in statement...

> I have a ZCatalog which contains about 850k entries. Each entry is a
zclass
> instance which is NOT 'catalog aware' (ie. catalog_object was used to
> explicitly add the record to the zcatalog).
>
> The records exist in the zcatalog and I can access a single record's
> data_record_id_ by:
>
> <dtml-call "REQUEST.set('recid', '1049298593')">
> <dtml-in "Catalog({'master_recid' : recid})">
>    <dtml-call "REQUEST.set('drid', data_record_id_)">
> </dtml-in>
> drid= <dtml-var drid>

Incorrect (typo):
<dtml-in "Catalog({'master_recid' : recid})">

Corrected:
<dtml-in "Catalog({'id' : recid})">



> Displays:
>
> drid= 17223047659
>
> All is well, so far... I now want to remove the record from the ZCatalog:
>
> <dtml-call "Catalog.uncatalog_object(recid)">
>
> generates the following error in my log file:
>
> 2004-07-02T11:13:07 ERROR(200) Catalog uncatalogObject unsuccessfully
> attempted to uncatalog an object with a uid of 1049298593.
>
> and
>
> <dtml-call "Catalog.uncatalog_object(drid)">
>
> generates the following error in my log file:
>
> 2004-07-02T11:21:07 ERROR(200) Catalog uncatalogObject unsuccessfully
> attempted to uncatalog an object with a uid of 1722304759.
>
> So, how do you remove a 'non-catalog aware' object from a zcatalog? (this
is
> the first time I have used non-catalog aware instances, in previous
projects
> I used catalog-aware objects and just deleted the object in the folder and
> the object was automatically removed from the zcatalog).

I don't understand why the uid of 1049298593 works in retrieving the record
from the zcatalog, but not when used to delete the record from the
zcatalog?!  (I have looked at the code in Catalog.py and nothing in the
uncatalog_object method provides any hints as to why this problem is
occuring).

Any ideas would be really appreciated!

Thanks,

Jonathan






More information about the Zope mailing list