[Zope-dev] why cant i rename an object from an external method

Andy McKay andym@ActiveState.com
Thu, 28 Sep 2000 18:16:51 -0700


Heres a treat. I'm trying to write an external method to rename objects. I
have approx 10,000 to rename so a script would be nice. No problem I
thought, imitate a forms manage_renameObject and CopySupport.py can do the
work.

Rename works fine from the web form, but not from a script.
(ASPNTools.getsomeobjectsfromstring returns a bunch of objects, Ive tried
replicating this with resolve_url and get different namespace error, could
this be a clue?).

Heres my script:

def search(self, REQUEST=None):
 l = ASPNTools.getsomeobjectsfromstring(self, REQUEST['path'], REQUEST)
 for obj in l:
  ob = obj.aq_parent # get the folder
  ob.manage_renameObject(obj.id(), 'Foo')

 return 'renamed'

Here's my problem:

The object 100BASEFX does not support this operation

....  File d:\p4\Zope-dev\lib\python\Products\ASPN/Extensions/foo_rename.py,
line 6, in search
    (Object: 100BASEFX)
  File d:\p4\Zope-dev\lib\python\OFS\CopySupport.py, line 288, in
manage_renameObject
    (Object: Traversable)
  File d:\p4\Zope-dev\lib\python\OFS\CopySupport.py, line 406, in
_verifyObjectPaste
    (Object: Traversable)
Copy Error: (see above)


There surely must be simple way of doing this so I dont have to resort to
writing a Perl script to imitate the browser, please!

Thanks in advance as ever.

--
  Andy McKay, Developer.
  ActiveState.