RE: [Zope] delete zclass instance
Thanks for the reply.
Ok. So I copied my ItemClass_add(constructor) to ItemClass_delete and then changed the following line:
<!--#with "ItemClass.createInObjectManager(REQUEST['id'], REQUEST)"-->
to:
<!--#with "ItemClass.manage_delObjects(self, REQUEST['id'], REQUEST)"-->
but I'm getting a NameError with 'self'.
When you're calling "createInObjectManager", you're calling a Method on the class itself. manage_delObjects is a method on ObjectManager instances to delete items that they contain. So in this caise, you want to delete the instance. You can do: <!--#with folderId--> <!--#call "manage_delObjects([REQUEST['id'])"--> <!--#/with--> (where folderId is the id of the folder/object manager containing the object you want to delete. You could also do: <!--#call expr="folderId.manage_delObjects([REQUEST['id'])"--> without the with tags.) manage_delObjects is what is called when you mark checkboxes in the Contents list of a folder and click delete. What's passed in _must_ be a list of ID's (even if it's a single ID, it must be surrounded by []). You don't need to pass REQUEST as the last parameter in this case. Many Zope methods that are primarily accessed through the management interface use REQUEST as a means of knowing they were accessed as a direct action (submitting a form) and should return an HTML page). When Scripting (using expr="..."), you usually don't need to pass it in. This holds for almost every method beginning with manage_.
participants (1)
-
Jeffrey Shell