hi. i have a form, which contains a table describing some objects (in zodb). these objects are grouped in several folders: ParentFolder | |--- Folder1 | here are some object |--- Folder2 | and here too ... there is a radio button in every column, used to select one of object. there are also several submit buttons - 'edit', 'view' etc. pressing such button causes a proper method invocation on proper object: lista=[] folders = container.objectValues(['Folder']) # container == ParentFolder for folder in folders: lista.append(folder.objectValues(['SomeObjectClass'])[0]) # let's say, we add only one object ret = context.REQUEST['radio'] for i in lista: if i.objectID == ret: return i.action(context.REQUEST) unfortunatelly, the code above doesnt change the context. i mean, when you press 'view' button, you are getting a proper view of some object, but the context is not changed to FolderX/objectID, but is still ParentFolder. this causes problems - when on the view page you click on 'edit', zope tries to execute edit method of ParentFolder, not of FolderX/objectID. my question: how to change the context, and execute a proper methon on the object? i tried that way: instead of: return i.action(context.REQUEST) i used: return context.REQUEST.RESPONSE.redirect(properContext+methodName) but this solution is not acceptable, because it loses form data stored in REQUEST (there are another input's in the form, not only the radio button to select the object) i have no bloody idea, how to do it :) greetings, kuba